The following patch adds the MTD map driver for Intel's IXP2000 NPU. The
driver is already in MTD CVS and I've gotten the OK from David to push it
upstream.
Missing Kconfig bits from Lennert Buytenhek <buytenh@wantstofly.org>
In drivers/ide/Kconfig there's a hidden config-item named BLK_DEV_ADMA.
Nowhere in the sources are any references to this item, so this option
simply is obsolete.
This patch removes the according item from drivers/ide/Kconfig.
Jeff Dike [Fri, 17 Sep 2004 05:14:58 +0000 (22:14 -0700)]
[PATCH] uml: code cleanup
Here's another batch of "obviously harmless" changes:
comments
unsigned long -> __u32 changes for some data that needs to be 32 bits
cleanups
removal of an unused declaration
rearrangement of includes
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 17 Sep 2004 05:14:33 +0000 (22:14 -0700)]
[PATCH] uml: network driver fixes
This is from Gerd Knorr. It fixes a network hang caused by the host side of
an interface being full when the UML interface is brought up, preventing any
SIGIOs from happening. It also implements an ioctl needed for ethtool.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 17 Sep 2004 05:12:22 +0000 (22:12 -0700)]
[PATCH] uml: iomem fix
This patch rounds up the size of a file used for iomem emulation up to the
nearest page. This makes mmap work much better on the last page of the
file.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 17 Sep 2004 05:12:07 +0000 (22:12 -0700)]
[PATCH] uml: eliminate signal order delivery dependency
On 2.4 hosts signals are delivered in numeric order when there are multiple
pending at a given time. UML developed a subtle dependency on this
ordering, which broke on 2.6 hosts and the separate process and thread
signal queues.
This patch eliminates that dependency.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 17 Sep 2004 05:11:55 +0000 (22:11 -0700)]
[PATCH] uml: let page faults always be delivered immediately
This allows page faults to be delivered when they happen. Without this, it
can happen that a page fault will occur when SIGSEGV is disabled, and the
host will then just kill UML because it can't invoke the handler.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 17 Sep 2004 05:11:41 +0000 (22:11 -0700)]
[PATCH] uml: cleaning up
This patch is a whole lot of "obviously won't break anything" changes,
including
renaming the UML console functions more consistently
notes to myself
code movement
making some functions static
error path cleanup
printk fixes
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 17 Sep 2004 05:10:32 +0000 (22:10 -0700)]
[PATCH] uml: fix a signal race
This patch saves and restores UML's idea of user mode across an interrupt.
Without this, an interrupt arriving at the wrong time can cause UML to lose
track of whether an interrupted handler is handing a userspace interrupt.
From: Ingo Molnar Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Fix a stupid bug in the sysrq handling in sn_console.c. Instead of eating
all characters in the sysrq string (preventing them from getting to the tty
layer), only eat those following 'ESC' since that's a pretty important
character for various things. Please apply before 2.6.9 is released as the
console is very unfriendly to use without it.
Zwane Mwaikambo [Fri, 17 Sep 2004 05:09:12 +0000 (22:09 -0700)]
[PATCH] Close race with preempt and modular pm_idle callbacks
The following patch from Shaohua Li fixes a race with preempt enabled when
a module containing a pm_idle callback is unloaded. Cached values in local
variables need to be protected as RCU critical sections so that the
synchronize_kernel() call in the unload path waits for all processors.
There original bugzilla entry can be found at
Shaohua, i had to make a small change (variable declaration after code in
code block) so that it compiles with geriatric compilers such as the ones
Andrew is attached to ;)
http://bugzilla.kernel.org/show_bug.cgi?id=1716
Signed-off-by: Li Shaohua <shaohua.li@intel.com> Signed-off-by: Zwane Mwaikambo <zwane@linuxpower.ca> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] device driver for the SGI system clock, mmtimer
SGI has been using this driver under Linux since 2001 but it was
never included in the upstream kernel. SuSE did include the patch for mmtimer
in SLES 9. The driver has been widely used for applications on the Altix
platform.
The timer hardware was designed around the multimedia timer specification by
Intel but to my knowledge only SGI has implemented that standard. The driver
was written by Jesse Barnes.
The second revision has interrupt support removed and was somewhat simplified
by removing one include file.
Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] m32r: support a new bootloader "m32r-g00ff"
- Support new bootloader "m32r-g00ff". m32r-g00ff is newly written by
NIIBE Yutaka and is released under GPL.
http://www.gniibe.org/software/m32r-g00ff-20040729.tar.gz
- arch/m32r/kernel/setup.c (parse_mem_cmdline): Fix to remove unused
region at the end of memory.
- include/asm-m32r/uaccess.h (__put_user_u64): Fix to remove warnings in
compilation time.
NOTE: (for m32r users)
From this version, the bootloader-kernel interface has changed.
- Section order is changed and rearranged for the new bootloader.
- Kernel's entry address is also changed : 0x08001000 --> 0x08002000.
- Paramter-passing method from bootloader to kernel is revised.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] m32r: modify sys_ipc() to remove useless iBCS2 support code
The useless iBCS2 supporting code is removed.
However, according to old_ syscalls, I would like to keep backward-
compatibility for a while, due to some old deb packages and
executables for m32r.
I'm struggling to rebuild and replace old packages to new ones.
http://debian.linux-m32r.org/
This patch updates code to fix compile errors, and so on.
* arch/m32r/kernel/Makefile:
Change linker script's name from vmlinux.lds.s to vmlinux.lds.
* arch/m32r/kernel/process.c (sys_clone):
Fix the first parameter of do_fork() call.
* arch/m32r/kernel/signal.c:
(handle_signal): Add a new second argument, struct k_sigaction *ka.
(do_signal): Change get_signal_to_deliver() interface.
* include/asm-m32r/hardirq.h:
Some declarations are moved to linux/hardirq.h.
Alan Cox [Fri, 17 Sep 2004 05:03:36 +0000 (22:03 -0700)]
[PATCH] serial-cs and unusable port size ranges
A couple of GSM GPRS PCMCIA cards advertise 16 rather than 8 port sized
windows for their serial interface. This breaks our current pcmcia serial
driver which ignores any windows that are not 8 bytes.
To avoid any regressions on other cards given this driver contains a
certain amount of "magic" the patch below looks for 8 byte windows first so
will not break existing supported cards (I hope ;))
Patch-by: Alan Cox <alan@redhat.com>
OSDL Developer Certiticate Of Origin included herein by reference
Acked by Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Currently metadata writing errors are ignored and not returned from
sys_fsync on ext2 and ext3 filesystems. That is, at least ext2 and ext3.
Both ext2 and ext3 resort to sync_inode() in their ->sync_inode method,
which in turn calls ->write_inode. ->write_inode method has void type, and
any IO errors happening inside are lost.
[PATCH] x86-64: sibling map fix for clustered mode
From: James Cleverdon
The value that cpuinfo returns for command 1 in ebx is the physical APIC ID
latched when the system comes out of reset.
Ordinarily, this is identical to the value in the local APIC's ID register,
because nearly all BIOSes accept the HW assigned value.
Our systems, made up of individual building blocks, can't do that. Each
node boots as a separate system and is joined together by the BIOS. Thus,
the BIOS rewrites the local APIC ID register with a new value.
Potomac and Nocona chips have a mechanism by which the BIOS writer can
change bits 7:5 to match the assigned cluster ID. Bits 2:0 come from the
thread ID. However, bits 4:3 are still those latched at reset. Oops!
Summary: Large clustered systems can't use cpuid to derive the sibling
information.
Fix: Use the local APIC ID. That's the value we use to online the CPUs, so
it had better be OK. For non-clustered systems, cpuid == local APIC, so
nothing but large boxes should be affected.
David Gibson [Fri, 17 Sep 2004 04:59:04 +0000 (21:59 -0700)]
[PATCH] ppc64: remove LARGE_PAGE_SHIFT constant
For historical reasons, ppc64 has ended up with two #defines for the size
of a large (16M) page: LARGE_PAGE_SHIFT and HPAGE_SHIFT. This patch
removes LARGE_PAGE_SHIFT in favour of the more widely used HPAGE_SHIFT.
Signed-off-by: David Gibson <dwg@au1.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Fri, 17 Sep 2004 04:58:49 +0000 (21:58 -0700)]
[PATCH] ppc64: fix CONFIG_CMDLINE
When I cleaned up our cmdline parsing, I missed a RELOC of CONFIG_CMDLINE
itself. Without it we copy something random into cmd_line, but only when
CONFIG_CMDLINE is enabled.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Fri, 17 Sep 2004 04:58:23 +0000 (21:58 -0700)]
[PATCH] ppc64: fix hotplug CPU when building a pseries+pmac kernel
When a pseries+pmac kernel is built, the rtas stop-self token wasnt being
initialised. Since doing this will safely fail on pmac, remove the
!CONFIG_PPC_PMAC restriction
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Fri, 17 Sep 2004 04:58:10 +0000 (21:58 -0700)]
[PATCH] ppc64: don't use state == SYSTEM_BOOTING
From: Nathan Lynch <nathanl@austin.ibm.com>
Fedora has a patch which introduces a new system state during boot. Change
system_state == SYSTEM_BOOTING to system_state < SYSTEM_RUNNING to match
it.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Fri, 17 Sep 2004 04:56:50 +0000 (21:56 -0700)]
[PATCH] ppc64: replace mmu_context_queue with idr allocator
Replace the mmu_context_queue structure with the idr allocator. The
mmu_context_queue allocation was quite large (~200kB) so on most machines
we will have a reduction in usage.
We might put a single entry cache on the front of this so we are more
likely to reuse ppc64 MMU hashtable entries that are in the caches.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Fri, 17 Sep 2004 04:56:38 +0000 (21:56 -0700)]
[PATCH] ppc64: powersave_nap sysctl
Implement powersave_nap sysctl, like ppc32. This allows us to disable the
nap function which is useful when profiling with oprofile (to get an
accurate count of idle time).
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Olaf Hering [Fri, 17 Sep 2004 04:56:13 +0000 (21:56 -0700)]
[PATCH] ppc32: open_pic2.c build fix
arch/ppc/syslib/open_pic2.c: In function `init_openpic2_sysfs':
arch/ppc/syslib/open_pic2.c:694: error: `ENODEV' undeclared (first use in this function)
arch/ppc/syslib/open_pic2.c:694: error: (Each undeclared identifier is reported only once
arch/ppc/syslib/open_pic2.c:694: error: for each function it appears in.)
possible fix below.
Signed-off-by: Olaf Hering <olh@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Tom Rini [Fri, 17 Sep 2004 04:55:59 +0000 (21:55 -0700)]
[PATCH] ppc32: Fix arch/ppc/boot/common/ns16550.c
When <linux/timex.h> started including <asm/io.h> this exposed one of the
fragilities of the code in arch/ppc/boot/, namely that it is tied to the
kernel headers for some information, yet not really the kernel. The
following starts us in the direction of being less tied to the kernel by
providing our own serial_state definition (all we care about is the ability
to grab information from SERIAL_PORT_DFNS).
Signed-off-by: Tom Rini <trini@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Roland McGrath [Fri, 17 Sep 2004 04:55:43 +0000 (21:55 -0700)]
[PATCH] fix posix-timers leak
Exec fails to clean up posix-timers. This manifests itself in two ways, one
worse than the other. In the single-threaded case, it just fails to clear out
the timers on exec. POSIX says that exec clears out the timers from
timer_create (though not the setitimer ones), so it's wrong that a lingering
timer could fire after exec and kill the process with a signal it's not
expecting. In the multi-threaded case, it not only leaves lingering timers,
but it leaks them entirely when it replaces signal_struct, so they will never
be freed by the process exiting after that exec. The new per-user
RLIMIT_SIGPENDING actually limits the damage here, because a UID will fill up
its quota with leaked timers and then never be able to use timer_create again
(that's what my test program does). But if you have many many untrusted UIDs,
this leak could be considered a DoS risk.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
There's one additional step we can do ontop of the ports-max code to get rid
of copying in X.org's case: cache the last task that set up the IO bitmap.
This means we can set the offset to invalid and keep the IO bitmap of that
task, and switch back to a valid offset (without any copying) when switching
back to that task. (or do a copy if there is another ioperm task we switch
to.)
I've attached ioport-cache-2.6.8.1.patch that implements this. When
there's a single active ioperm() using task in the system then the
context-switch overhead is very low and constant:
# ./ioperm-latency
default no ioperm: scheduling latency: 2478 cycles
turning on port 80 ioperm: scheduling latency: 2499 cycles
turning on port 65535 ioperm: scheduling latency: 2481 cycles
This single-ioperm-user situation matches 99% of the actual ioperm()
usage scenarios and gets rid of any copying whatsoever - without relying
on any fault mechanism. I can see no advantage of the GPF approach over
this patch.
Ryan S. Arnold [Fri, 17 Sep 2004 04:55:05 +0000 (21:55 -0700)]
[PATCH] hvc_console fix to protect hvc_write against ldisc write after hvc_close
Due to the tty ldisc code not stopping write operations against a driver
even after a tty has been closed I added a mechanism to hvc_console in my
previous patch to prevent this by nulling out the tty->driver_data in
hvc_close() but I forgot to check tty->driver_data in hvc_write(). Anton
Blanchard got several oops'es from hvc_write() accessing NULL as if it were
a pointer to an hvc_struct usually stored in tty->driver_data.
So this patch checks tty->driver_data in hvc_write() before it is used.
Hopefully once Alan Cox's patch is checked in ldisc writes won't continue
to happen after tty closes.
Anton Blanchard has tested this patch and is unable to reproduce the oops
with it applied.
Changelog:
drivers/char/hvc_console.c
- Added comment to hvc_close() to explain the reason for NULLing
tty->driver_data.
- Added check to hvc_write() to verify that tty->driver_data is valid
(NOT NULL) which would be the case if the write operation was invoked
after a tty close was initiated on the tty.
Signed-off-by: Ryan S. Arnold <rsa@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Markus Lidel [Fri, 17 Sep 2004 04:54:51 +0000 (21:54 -0700)]
[PATCH] reduce ioremap memory size for Adaptec I2O controllers
The I2O subsystem currently map all memory from the I2O controller for the
controller's in queue, even if it is not necessary. This is a problem,
because on some systems the size returned from pci_resource_len() could be
128MB and only 1-4MB is needed.
Changes:
- only ioremap as much memory as the controller is actually using.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mark Goodwin [Thu, 16 Sep 2004 22:25:43 +0000 (22:25 +0000)]
[IA64] SGI Altix hardware performance monitoring API
The SGI Altix PROM supports a SAL call for performance monitoring and for
exporting NUMA topology. We need this in community kernels for diagnostic
and performance tools to use, especially on very large machines.
This patch registers a dynamic misc device "sn_hwperf" that supports an
ioctl interface for reading/writing memory mapped registers on Altix
nodes and routers via the new SAL call. It also creates a read-only
procfs file "/proc/sgi_sn/sn_topology" to export NUMA topology and Altix
hardware inventory.
> What tools are using this?
Performance Co-Pilot http://oss.sgi.com/projects/pcp in particular,
pmshub, shubstats and linkstat. Numerous other users include anything
that needs knowledge of numa topology/interconnect in order to perform
well, e.g. mpt. BTW I have not exported any API functions .. at this
point I don't think we need any modules to call the API.
Signed-off-by: Mark Goodwin <markgw@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>