Chris McDermott [Sun, 12 Feb 2006 01:55:50 +0000 (17:55 -0800)]
[PATCH] x86-64: Fix HPET timer on x460
[description from AK]
The IBM Summit 3 chipset doesn't implement the HPET timer replacement
option. Since the current Linux code relies on it use a mixed mode with
both PIT for the interrupt and HPET counters for the time keeping. That
was already implemented, but didn't work properly because it was still
using the last interrupt offset in HPET. This resulted in x460 not
booting. Fix this up by using the free running HPET counter.
Shouldn't affect any other machine because they either use full HPET mode
or no HPET at all.
TBD needs a similar 32bit fix.
Signed-off-by: Andi Kleen <ak@suse.de> Cc: Pallipadi, Venkatesh" <venkatesh.pallipadi@intel.com> Cc: Bob Picco <bob.picco@hp.com> Cc: Bjorn Helgaas <bjorn.helgaas@hp.com> Cc: john stultz <johnstul@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Matt Waddel [Sun, 12 Feb 2006 01:55:48 +0000 (17:55 -0800)]
[PATCH] Add wording to m68k .S files to help clarify license info
Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Matt Waddel <Matt.Waddel@freescale.com> Cc: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ulrich Drepper [Sun, 12 Feb 2006 01:55:47 +0000 (17:55 -0800)]
[PATCH] fstatat64 support
The *at patches introduced fstatat and, due to inusfficient research, I
used the newfstat functions generally as the guideline. The result is that
on 32-bit platforms we don't have all the information needed to implement
fstatat64.
This patch modifies the code to pass up 64-bit information if
__ARCH_WANT_STAT64 is defined. I renamed the syscall entry point to make
this clear. Other archs will continue to use the existing code. On x86-64
the compat code is implemented using a new sys32_ function. this is what
is done for the other stat syscalls as well.
This patch might break some other archs (those which define
__ARCH_WANT_STAT64 and which already wired up the syscall). Yet others
might need changes to accomodate the compatibility mode. I really don't
want to do that work because all this stat handling is a mess (more so in
glibc, but the kernel is also affected). It should be done by the arch
maintainers. I'll provide some stand-alone test shortly. Those who are
eager could compile glibc and run 'make check' (no installation needed).
The patch below has been tested on x86 and x86-64.
Signed-off-by: Ulrich Drepper <drepper@redhat.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ben Dooks [Fri, 10 Feb 2006 22:40:51 +0000 (22:40 +0000)]
[ARM] 3326/1: H1940 - Control latches
Patch from Ben Dooks
Define the bits for the two board control latches
that control various items on the H1940 iPAQ.
Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King [Fri, 10 Feb 2006 21:50:43 +0000 (21:50 +0000)]
[SERIAL] Remove incorrect code from ioc4 serial driver
Serial drivers in general should not write uart_info->flags - they're
private to serial_core. Serial drivers have no need to fiddle with
tty->alt_speed, nor manipulate TTY_IO_ERROR in tty->flags. Fix the
ioc4 serial driver for both these points by simply removing the
offending code.
Acked-by: pfg@sgi.com Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Dave Jones [Fri, 10 Feb 2006 21:27:11 +0000 (16:27 -0500)]
[PATCH] Fix s390 build failure.
arch/s390/kernel/compat_signal.c:199: error: conflicting types for 'do_sigaction'
include/linux/sched.h:1115: error: previous declaration of 'do_sigaction' was here
Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This adds some additional comments in order to help others figure out how
exactly the code works. And fix a variable name.
Also swap_page does need to ignore all reference bits when unmapping a
page. Otherwise we may have to repeatedly unmap a frequently touched page.
So change the try_to_unmap parameter to 1.
Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Fulghum [Fri, 10 Feb 2006 09:51:14 +0000 (01:51 -0800)]
[PATCH] tty buffering stall fix
Prevent stalled processing of received data when a driver allocates tty
buffer space but does not immediately follow the allocation with more data
and a call to schedule receive tty processing. (example: hvc_console) This
bug was introduced by the first locking patch for the new tty buffering.
Signed-off-by: Paul Fulghum <paulkf@microgate.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] slab: Avoid deadlock at kmem_cache_create/kmem_cache_destroy
Prevents deadlock situation between
kmem_cache_create()/kmem_cache_destory(), and kmem_cache_create() /cpu
hotplug. The locking order probably got moved over time.
Andrew Morton [Fri, 10 Feb 2006 09:51:08 +0000 (01:51 -0800)]
[PATCH] x86: don't initialise cpu_possible_map to all ones
Initialising cpu_possible_map to all-ones with CONFIG_HOTPLUG_CPU means that
a) All for_each_cpu() loops will iterate across all NR_CPUS CPUs, rather
than over possible ones. That can be quite expensive.
b) Soon we'll be allocating per-cpu areas only for possible CPUs. So with
CPU_MASK_ALL, we'll be wasting memory.
I also switched voyager over to not use CPU_MASK_ALL in the non-CPU-hotplug
case. Should be OK..
I note that parisc is also using CPU_MASK_ALL. Suggest that it stop doing
that.
Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: Kyle McMartin <kyle@mcmartin.ca> Cc: Paul Jackson <pj@sgi.com> Cc: Ashok Raj <ashok.raj@intel.com> Cc: Zwane Mwaikambo <zwane@linuxpower.ca> Cc: Paul Jackson <pj@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
We are setting up sources for building external modules like this:
/usr/src/linux-obj> # create a .config file
/usr/src/linux-obj> make -C /usr/src/linux O=$PWD oldconfig
/usr/src/linux-obj> make -C /usr/src/linux O=$PWD prepare
/usr/src/linux-obj> make -C /usr/src/linux O=$PWD scripts
/usr/src/linux-obj> make -C /usr/src/linux O=$PWD clean
After that, external modules can be built with:
/usr/src/module> make -C /usr/src/linux-obj M=$PWD
This fails for ppc32 because the `make clean' removes the
arch/powerpc/include directory. This should be done in archmrproper
instead of in archclean.
Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Haren Myneni [Fri, 10 Feb 2006 09:51:05 +0000 (01:51 -0800)]
[PATCH] kexec: fix in free initrd when overlapped with crashkernel region
It is possible that the reserved crashkernel region can be overlapped with
initrd since the bootloader sets the initrd location. When the initrd
region is freed, the second kernel memory will not be contiguous. The
Kexec_load can cause an oops since there is no contiguous memory to write
the second kernel or this memory could be used in the first kernel itself
and may not be part of the dump. For example, on powerpc, the initrd is
located at 36MB and the crashkernel starts at 32MB. The kexec_load caused
panic since writing into non-allocated memory (after 36MB). We could see
the similar issue even on other archs.
One possibility is to move the initrd outside of crashkernel region. But,
the initrd region will be freed anyway before the system is up. This patch
fixes this issue and frees only regions that are not part of crashkernel
memory in case overlaps.
Signed-off-by: Haren Myneni <haren@us.ibm.com> Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Nick Piggin [Fri, 10 Feb 2006 09:51:02 +0000 (01:51 -0800)]
[PATCH] sched: remove smpnice
I don't think the code is quite ready, which is why I asked for Peter's
additions to also be merged before I acked it (although it turned out that
it still isn't quite ready with his additions either).
Basically I have had similar observations to Suresh in that it does not
play nicely with the rest of the balancing infrastructure (and raised
similar concerns in my review).
The samples (group of 4) I got for "maximum recorded imbalance" on a 2x2
SMP+HT Xeon are as follows:
Hackbench raw performance is down around 15% with smpnice (but that in
itself isn't a huge deal because it is just a benchmark). However, the
samples show that the imbalance passed into move_tasks is increased by
about a factor of 10-30. I think this would also go some way to explaining
latency blips turning up in the balancing code (though I haven't actually
measured that).
We'll probably have to revert this in the SUSE kernel.
Cc: "Siddha, Suresh B" <suresh.b.siddha@intel.com> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: Peter Williams <pwil3058@bigpond.net.au> Cc: "Martin J. Bligh" <mbligh@aracnet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Becky Bruce [Tue, 7 Feb 2006 19:44:08 +0000 (13:44 -0600)]
[PATCH] powerpc: Add FSL USB node to documentation
Updated the documentation to include the definition of the USB device
node format for Freescale SOC devices.
Signed-off-by: Becky Bruce <becky.bruce@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
[BRIDGE]: fix error handling for add interface to bridge
Refactor how the bridge code interacts with kobject system.
It should still use kobjects even if not using sysfs.
Fix the error unwind handling in br_add_if.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Bridge netfilter code needs to handle the case where device is
removed from bridge while packet in process. In these cases the
bridge_parent can become null while processing.
This should fix: http://bugzilla.kernel.org/show_bug.cgi?id=5803
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
[BRIDGE]: fix for RCU and deadlock on device removal
Change Bridge receive path to correctly handle RCU removal of device
from bridge. Also fixes deadlock between carrier_check and del_nbp.
This replaces the previous deleted flag fix.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Alexey Kuznetsov [Fri, 10 Feb 2006 00:40:58 +0000 (16:40 -0800)]
[NETLINK]: illegal use of pid in rtnetlink
When a netlink message is not related to a netlink socket,
it is issued by kernel socket with pid 0. Netlink "pid" has nothing
to do with current->pid. I called it incorrectly, if it was named "port",
the confusion would be avoided.
Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
Alexey Kuznetsov [Fri, 10 Feb 2006 00:40:11 +0000 (16:40 -0800)]
[NETLINK]: Fix a severe bug
netlink overrun was broken while improvement of netlink.
Destination socket is used in the place where it was meant to be source socket,
so that now overrun is never sent to user netlink sockets, when it should be,
and it even can be set on kernel socket, which results in complete deadlock
of rtnetlink.
Suggested fix is to restore status quo passing source socket as additional
argument to netlink_attachskb().
A little explanation: overrun is set on a socket, when it failed
to receive some message and sender of this messages does not or even
have no way to handle this error. This happens in two cases:
1. when kernel sends something. Kernel never retransmits and cannot
wait for buffer space.
2. when user sends a broadcast and the message was not delivered
to some recipients.
Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
This patch adds s3c2400.h, fixing the build for the 2410/2440
platforms.
Signed-off-by: Lucas Correia Villa Real <lucasvr@gobolinux.org> Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
"Sigh. Can everyone please stop assuming gcc can output to /dev/null?
On several platforms, ld tries to lseek in the output file, and fails
if it can't."
Kristian Slavov [Thu, 9 Feb 2006 00:10:53 +0000 (16:10 -0800)]
[IPV6]: Address autoconfiguration does not work after device down/up cycle
If you set network interface down and up again, the IPv6 address
autoconfiguration does not work. 'ip addr' shows that the link-local
address is in tentative state. We don't even react to periodical router
advertisements.
During NETDEV_DOWN we clear IF_READY, and we don't set it back in
NETDEV_UP. While starting to perform DAD on the link-local address, we
notice that the device is not in IF_READY, and we abort autoconfiguration
process (which would eventually send router solicitations).
Acked-by: Juha-Matti Tapio <jmtapio@verkkotelakka.net> Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Tony Lindgren [Wed, 8 Feb 2006 22:06:45 +0000 (22:06 +0000)]
[ARM] 3279/1: OMAP: 1/3 Fix low-level io init
Patch from Tony Lindgren
This patch adds the missing cache flushes to common low-level
init that are needed to access the IO region. These flushes
are normally done at the end of devicemaps_init(), but we
need to detect the OMAP core type early.
Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Kumar Gala [Wed, 8 Feb 2006 21:34:35 +0000 (21:34 +0000)]
[SERIAL] 8250 serial console update uart_8250_port ier
On some embedded PowerPC (MPC834x) systems an extra byte would some
times be required to flush data out of the fifo.
serial8250_console_write() was updating the IER in hardware without
also updating the copy in uart_8250_port. This causes issues functions
like serial8250_start_tx() and __stop_tx() to misbehave.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
[ARM] 3283/1: S3C2400 - defines the number of serial ports
Patch from Lucas Correia Villa Real
This patch defines the number of serial ports on the S3C2400.
Signed-off-by: Lucas Correia Villa Real <lucasvr@gobolinux.org> Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Nicolas Pitre [Wed, 8 Feb 2006 21:19:38 +0000 (21:19 +0000)]
[ARM] 3311/1: clean up include/asm-arm/mutex.h
Patch from Nicolas Pitre
Since:
if (unlikely(__res || __ex_flag))
produces worse code on ARM than:
if (unlikely(__res | __ex_flag))
I therefore made it more explicit:
__res |= __ex_flag;
if (unlikely(__res != 0))
so it is not seen as a typo again.
Also made everything static inline rather than macros for better readability
(both produce the same code after all).
And finally added missing \t from multi-line assembly code.
Signed-off-by: Nicolas Pitre <nico@cam.org> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Nicolas Pitre [Wed, 8 Feb 2006 21:19:37 +0000 (21:19 +0000)]
[ARM] 3310/1: add a comment about the possible __kuser_cmpxchg transient false
negative
Patch from Nicolas Pitre
The pre ARMv5 implementation can be aborted if an exception occurs in
the middle of it. Because of that, the ARMv6 implementation doesn't
re-attempt the operation on a failed strex either. Let's make this
transient nature of such a false positive more explicit in the
definition.
Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Nicolas Pitre [Wed, 8 Feb 2006 21:19:37 +0000 (21:19 +0000)]
[ARM] 3309/1: disable the pre-ARMv5 NPTL kernel helper in the non MMU case
Patch from Nicolas Pitre
The cmpxchg emulation on pre-ARMv5 relies on user code executed from a
kernel address. If the operation cannot complete atomically, it is
aborted from the usr_entry macro by clearing the Z flag. This clearing
of the Z flag is done whenever the user pc is above TASK_SIZE.
However this "pc >= TASK_SIZE" test cannot work in the non MMU case.
Worse: the current code will corrupt the Z flag on every entry to the
kernel.
Let's disable it in the non MMU case for now. Using NPTL on non MMU
targets needs to be worked out anyway.
Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Nicolas Pitre [Wed, 8 Feb 2006 21:19:36 +0000 (21:19 +0000)]
[ARM] 3308/1: old ABI compat: struct sockaddr_un
Patch from Nicolas Pitre
struct sockaddr_un loses its padding with EABI. Since the size of the
structure is used as a validation test in unix_mkname(), we need to
change the length argument to 110 whenever it is 112.
Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Nicolas Pitre [Wed, 8 Feb 2006 21:09:08 +0000 (21:09 +0000)]
[ARM] 3307/1: old ABI compat: mark it experimental
Patch from Nicolas Pitre
Although OABI_COMPAT works fine in most cases, it is still experimental
and could be for ever since it is nearly impossible to handle
everything, e.g. ioctls.
Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
[ARM] 3302/1: make pci=firmware the default for ixp2000
Patch from Lennert Buytenhek
Most ixp2000 boards don't actually work if pci=firmware isn't used, so
the defconfig isn't really the right place to specify this. Instead of
specifying it in the defconfigs, make the relevant board code take care
of setting pci=firmware.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Deepak Saxena <dsaxena@plexity.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
[ARM] 3301/1: remove unnecessary clock default from ixdp2801 defconfig
Patch from Lennert Buytenhek
The ixdp2x01_clock is already 50MHz by default, so no need to
override it with 50MHz in the ixdp2801 defconfig as is done now,
which is confusing as well.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Deepak Saxena <dsaxena@plexity.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
[ARM] 3300/1: make ixdp2x01 co-exist with other ixp2000 machine types
Patch from Lennert Buytenhek
The ixdp2x01 pci init call doesn't check whether it's really running
on an ixdp2x01, making it impossible to compile one kernel that works
on both the ixdp2x01 and another ixp2000 board.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Deepak Saxena <dsaxena@plexity.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Ivan Kokshaysky [Wed, 8 Feb 2006 08:55:06 +0000 (11:55 +0300)]
[PATCH] alpha: set cpu_possible_map much earlier
All the percpu data structure walkers want cpu_possible_map to be
initialized early, but alpha instead populated "hwrpb_cpu_present_mask"
early in setup_smp(), and then initialized cpu_possible_map only much
later.
Thanks go to Heiko Carstens and Dipankar Sarma for noticing.
This fixes it and we can get rid of hwrpb_cpu_present_mask entirely.
Tejun Heo [Wed, 8 Feb 2006 09:01:31 +0000 (01:01 -0800)]
[PATCH] block: implement elv_insert and use it (fix ordcolor flipping bug)
q->ordcolor must only be flipped on initial queueing of a hardbarrier
request.
Constructing ordered sequence and requeueing used to pass through
__elv_add_request() which flips q->ordcolor when it sees a barrier
request.
This patch separates out elv_insert() from __elv_add_request() and uses
elv_insert() when constructing ordered sequence and requeueing.
elv_insert() inserts the given request at the specified position and
does nothing else.
Linus Torvalds [Wed, 8 Feb 2006 15:51:17 +0000 (07:51 -0800)]
ppc: fix up trivial Kconfig config selection
Quoth BenH:
"Ok, looks like I forgot to update the Kconfig for the new i2c driver,
it should select I2C_POWERMAC instead. Do you want a new patch or
can you just fix it there ?"
When issuing an SG_IO ioctl through sd that resulted in an unrecoverable
error, a nearly infinite retry loop was discovered. This is due to the
fact that the block layer SG_IO code is not setting up rq->retries. This
patch also fixes up the sg_scsi_ioctl path.
Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Jens Axboe <axboe@suse.de>
[PATCH] powerpc: Thermal control for dual core G5s
This patch adds a windfarm module, windfarm_pm112, for the dual core G5s
(both 2 and 4 core models), keeping the machine from getting into
vacuum-cleaner mode ;) For proper credits, the patch was initially
written by Paul Mackerras, and slightly reworked by me to add overtemp
handling among others. The patch also removes the sysfs attributes from
windfarm_pm81 and windfarm_pm91 and instead adds code to the windfarm
core to automagically expose attributes for sensor & controls.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>