GitHub/MotorolaMobilityLLC/kernel-slsi.git
17 years agolibata: fix infinite EH waiting bug
Tejun Heo [Mon, 25 Jun 2007 12:47:11 +0000 (21:47 +0900)]
libata: fix infinite EH waiting bug

When EH gives up after repeated exceptions, it doesn't't clear the
PENDING bit on exit which leaves PENDING bit set without EH actually
scheduled.  This makes ata_port_wait_eh() to wait forever makes rmmod
hang on such port.  Fix it by clearing the flag.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolibata: fix ata_dev_disable()
Tejun Heo [Mon, 25 Jun 2007 14:34:02 +0000 (23:34 +0900)]
libata: fix ata_dev_disable()

Fix silly condition check bug in ata_dev_disable().

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopata_it821x: fix section mismatch warning
Randy Dunlap [Mon, 25 Jun 2007 17:42:22 +0000 (10:42 -0700)]
pata_it821x: fix section mismatch warning

Fix section mismatch when CONFIG_HOTPLUG=n (but functions are used
for resume):

WARNING: drivers/ata/pata_it821x.o(.text+0x3f): Section mismatch: reference to .init.text: (between 'it821x_reinit_one' and 'it821x_program_udma')
WARNING: drivers/ata/pata_it821x.o(.text+0x691): Section mismatch: reference to .init.text: (between 'it821x_init_one' and 'it821x_passthru_set_dmamode')

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolibata: remove unused variable from ata_eh_reset()
Tejun Heo [Mon, 25 Jun 2007 12:43:04 +0000 (21:43 +0900)]
libata: remove unused variable from ata_eh_reset()

Removed unused variable did_followup_srst from ata_eh_reset().

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolibata: be less verbose about hpa
Tejun Heo [Mon, 25 Jun 2007 11:45:54 +0000 (20:45 +0900)]
libata: be less verbose about hpa

There's no reason to print out hpa related messages when HPA is not
active.  Kill the unconditional message and add a warning message
which is printed if HPA size is smaller than the current size.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolibata: kill non-sense warning message
Tejun Heo [Mon, 25 Jun 2007 12:11:13 +0000 (21:11 +0900)]
libata: kill non-sense warning message

prereset() is now allowed to set flag for unsupported reset method.
EH layer is responsible for selecting the fallback.  Remove non-sense
warning message.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolibata: kill the infamous abnormal status message
Tejun Heo [Mon, 25 Jun 2007 12:31:05 +0000 (21:31 +0900)]
libata: kill the infamous abnormal status message

The infamous abnormal status message triggers on not so abnormal cases
including empty port and even when it's being triggered on actual
errors the info it provides is redundant and out of context - higher
level functions will print the info in better safe later anyway.

Also, by being triggered all the time, it leads people to think that
the abnormality is somehow related to all ATA and system problems
they're experiencing and gives owners of healthy systems unfounded
doubts about the integrity of the universe.  Make it a DPRINTK and
save the universe.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoHPT374 is UDMA100 not UDMA133
Alan Cox [Fri, 22 Jun 2007 13:17:28 +0000 (14:17 +0100)]
HPT374 is UDMA100 not UDMA133

Propogate change from drivers/ide

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agox86_64 irq: use mask/unmask and proper locking in fixup_irqs()
Siddha, Suresh B [Mon, 25 Jun 2007 22:52:35 +0000 (15:52 -0700)]
x86_64 irq: use mask/unmask and proper locking in fixup_irqs()

Force irq migration path during cpu offline, is not using proper locks and
irq_chip mask/unmask routines.  This will result in some races(especially
the device generating the interrupt can see some inconsistent state,
resulting in issues like stuck irq,..).

Appended patch fixes the issue by taking proper lock and encapsulating
irq_chip set_affinity() with a mask() before and an unmask() after.

This fixes a MSI irq stuck issue reported by Darrick Wong.

There are several more general bugs in this area(irq migration in the
process context). For example,

 1. Possibility of missing edge triggered irq.
 2. Reliable method of migrating level triggered irq in the process context.

We plan to look and close these in the near future.

Eric says:
In addition even with the fix from Suresh there is still at least one
nasty hardware race in fixup_irqs().   However we exercise that code
path rarely enough that we are unlikely to hit it in the real world,
and that race seems to have existed since the code was merged.  And a
fix for that is not coming soon as it is an open investigation area
if we can fix irq migration to work outside of irq context or if
we have to rework the requirements imposed by the generic cpu hotplug
and layer on fixup_irqs().  So this may come up again.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Reported-and-tested-by: Darrick Wong <djwong@us.ibm.com>
Cc: Andi Kleen <ak@suse.de>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agox86_64: set the irq_chip name for lapic
Suresh Siddha [Mon, 25 Jun 2007 22:31:37 +0000 (15:31 -0700)]
x86_64: set the irq_chip name for lapic

set the irq_chip name for lapic.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Tue, 26 Jun 2007 23:51:23 +0000 (16:51 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 4449/1: more entries in arch/arm/boot/.gitignore
  [ARM] 4452/1: Force the literal pool dump before reloc_end
  [ARM] Update show_regs/oops register format
  [ARM] Add support for pause_on_oops and display preempt/smp options

17 years agoMerge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Linus Torvalds [Tue, 26 Jun 2007 23:50:48 +0000 (16:50 -0700)]
Merge branch 'upstream' of git://ftp.linux-mips.org/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
  [MIPS] Count timer interrupts correctly.
  [MIPS] SMTC and non-SMTC kernel and modules are incompatible
  [MIPS] EMMA2RH: Disable GEN_RTC, it can't possibly work.
  [MIPS] Remove a duplicated local variable in test_and_clear_bit()
  [MIPS] use compat_siginfo in rt_sigframe_n32
  [MIPS] 20K: Handle WAIT related bugs according to errata information
  [MIPS] AP/SP requires shadow registers, auto enable support.
  [MIPS] Fix pb1500 reg B access
  [MIPS] Alchemy: Fix wrong cast
  [MIPS] remove "support for" from system type entry
  [MIPS] add io_map_base to pci_controller on Cobalt
  [MIPS] __ucmpdi2 arguments are unsigned long long.

17 years agoMerge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Tue, 26 Jun 2007 23:49:57 +0000 (16:49 -0700)]
Merge branch 'merge' of git://git./linux/kernel/git/paulus/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
  [POWERPC] Fix subtle FP state corruption bug in signal return on SMP
  [POWERPC] Fix VDSO gettimeofday() when called with NULL struct timeval
  [POWERPC] Update defconfigs
  [POWERPC] Update g5_defconfig

17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
Linus Torvalds [Tue, 26 Jun 2007 23:49:42 +0000 (16:49 -0700)]
Merge /pub/scm/linux/kernel/git/gregkh/usb-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6:
  USB: ftdio_sio: New IPlus device ID
  USB: add new device id to option driver
  USB: fix race leading to use after free in io_edgeport
  USB: usblcd doesn't limit memory consumption during write
  USB: memory leak in iowarrior.c
  USB: ti serial driver sleeps with spinlock held
  USB: g_file_storage: call allow_signal()

17 years ago[MIPS] Count timer interrupts correctly.
Chris Dearman [Thu, 21 Jun 2007 11:59:58 +0000 (12:59 +0100)]
[MIPS] Count timer interrupts correctly.

Signed-off-by: Chris Dearman <chris@mips.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] SMTC and non-SMTC kernel and modules are incompatible
Ralf Baechle [Wed, 20 Jun 2007 13:25:27 +0000 (14:25 +0100)]
[MIPS] SMTC and non-SMTC kernel and modules are incompatible

So don't allow mixing.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] EMMA2RH: Disable GEN_RTC, it can't possibly work.
Ralf Baechle [Mon, 18 Jun 2007 15:36:11 +0000 (16:36 +0100)]
[MIPS] EMMA2RH: Disable GEN_RTC, it can't possibly work.

Neither rtc_mips_get_time nor rtc_mips_set_time are being initialized by
the EMMA2RH setup code, so genrtc at best was a RTC dummy avoiding a few
error messages but not providing actual functionality.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] Remove a duplicated local variable in test_and_clear_bit()
Atsushi Nemoto [Wed, 13 Jun 2007 15:56:31 +0000 (00:56 +0900)]
[MIPS] Remove a duplicated local variable in test_and_clear_bit()

Fix a sparse warning caused by 2c921d07f8c641e691b0dfd80a5cfe14c60ec489

include2/asm/bitops.h:313:23: warning: symbol 'res' shadows an earlier one
include2/asm/bitops.h:309:16: originally declared here

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] use compat_siginfo in rt_sigframe_n32
Pavel Kiryukhin [Tue, 5 Jun 2007 09:42:20 +0000 (13:42 +0400)]
[MIPS] use compat_siginfo in rt_sigframe_n32

Signed-off-by: Pavel Kiryukhin <vksavl@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] 20K: Handle WAIT related bugs according to errata information
Ralf Baechle [Tue, 12 Jun 2007 12:04:09 +0000 (13:04 +0100)]
[MIPS] 20K: Handle WAIT related bugs according to errata information

We used to avoid the WAIT entirely on the 20K but really only need to do
this on early revs of the 20K.  Without this a 20K was a bit of a
power hog.  Well, in the lower power power hog category ;-)

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] AP/SP requires shadow registers, auto enable support.
Ralf Baechle [Fri, 1 Jun 2007 14:47:46 +0000 (15:47 +0100)]
[MIPS] AP/SP requires shadow registers, auto enable support.

Noticed by Chris Dearman (chris@mips.com).

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] Fix pb1500 reg B access
Yoichi Yuasa [Mon, 28 May 2007 14:26:56 +0000 (23:26 +0900)]
[MIPS] Fix pb1500 reg B access

au_readl() is correct here.

Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] Alchemy: Fix wrong cast
Yoichi Yuasa [Mon, 28 May 2007 14:13:50 +0000 (23:13 +0900)]
[MIPS] Alchemy: Fix wrong cast

Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] remove "support for" from system type entry
Yoichi Yuasa [Mon, 28 May 2007 13:54:28 +0000 (22:54 +0900)]
[MIPS] remove "support for" from system type entry

Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] add io_map_base to pci_controller on Cobalt
Yoichi Yuasa [Mon, 21 May 2007 14:02:34 +0000 (23:02 +0900)]
[MIPS] add io_map_base to pci_controller on Cobalt

Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] __ucmpdi2 arguments are unsigned long long.
Ralf Baechle [Tue, 26 Jun 2007 17:37:20 +0000 (19:37 +0200)]
[MIPS] __ucmpdi2 arguments are unsigned long long.

Reported by Eugene Surovegin <ebs@ebshome.net>.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years agoUSB: ftdio_sio: New IPlus device ID
Luiz Fernando N. Capitulino [Fri, 22 Jun 2007 01:34:23 +0000 (22:34 -0300)]
USB: ftdio_sio: New IPlus device ID

Reported by Grzegorz Chimosz <gchimi@gmail.com>

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: add new device id to option driver
Alexander Gattin [Tue, 19 Jun 2007 21:48:10 +0000 (00:48 +0300)]
USB: add new device id to option driver

Cc: Matthias Urlichs <smurf@smurf.noris.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: fix race leading to use after free in io_edgeport
Oliver Neukum [Wed, 13 Jun 2007 16:50:41 +0000 (18:50 +0200)]
USB: fix race leading to use after free in io_edgeport

usb_unlink_urb() is asynchronous, therefore an URB's buffer may not
be freed without waiting for the completion handler. This patch switches
to usb_kill_urb(), which is synchronous.
Thanks to Alan for making me look at the remaining users of usb_unlink_urb()

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Al Borchers <alborchers@steinerpoint.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: usblcd doesn't limit memory consumption during write
Oliver Neukum [Mon, 11 Jun 2007 13:36:02 +0000 (15:36 +0200)]
USB: usblcd doesn't limit memory consumption during write

usblcd currently has no way to limit memory consumption by fast writers.
This is a security problem, as it allows users with write access to this
device to drive the system into oom despite resource limits.
Here's the fix taken from the modern skeleton driver.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: memory leak in iowarrior.c
Oliver Neukum [Tue, 12 Jun 2007 13:36:07 +0000 (15:36 +0200)]
USB: memory leak in iowarrior.c

this is a classical memory leak in the ioctl handler. The buffer is simply
never freed. This fixes it the obvious way.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: ti serial driver sleeps with spinlock held
Oliver Neukum [Mon, 7 May 2007 06:33:18 +0000 (08:33 +0200)]
USB: ti serial driver sleeps with spinlock held

you are submitting an URB with GFP_KERNEL holding a spinlock.
In this case the spinlock can be dropped earlier.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Cc: Al Borchers <alborchers@steinerpoint.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: g_file_storage: call allow_signal()
Oleg Nesterov [Wed, 30 May 2007 15:06:33 +0000 (11:06 -0400)]
USB: g_file_storage: call allow_signal()

New changes in the signal-handling code require compensating changes
in g_file_storage.  This patch (as913) by Oleg Nesterov makes the
code use allow_signal() instead of sigprocmask().

From: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years ago[POWERPC] Fix subtle FP state corruption bug in signal return on SMP
Paul Mackerras [Tue, 26 Jun 2007 04:49:11 +0000 (14:49 +1000)]
[POWERPC] Fix subtle FP state corruption bug in signal return on SMP

This fixes a bug which can cause corruption of the floating-point state
on return from a signal handler.  If we have a signal handler that has
used the floating-point registers, and it happens to context-switch to
another task while copying the interrupted floating-point state from the
user stack into the thread struct (e.g. because of a page fault, or
because it gets preempted), the context switch code will think that the
FP registers contain valid FP state that needs to be copied into the
thread_struct, and will thus overwrite the values that the signal return
code has put into the thread_struct.

This can occur because we clear the MSR bits that indicate the presence
of valid FP state after copying the state into the thread_struct.  To fix
this we just move the clearing of the MSR bits to before the copy.  A
similar potential problem also occurs with the Altivec state, and this
fixes that in the same way.

Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Fix VDSO gettimeofday() when called with NULL struct timeval
Tony Breeds [Mon, 25 Jun 2007 23:50:32 +0000 (09:50 +1000)]
[POWERPC] Fix VDSO gettimeofday() when called with NULL struct timeval

Consider the prototype for gettimeofday():
int gettimofday(struct timeval *tv, struct timezone *tz);

Although it is valid to call with /either/ tv or tz being NULL, and
the C version of sys_gettimeofday() supports this, the current version
of gettimeofday() in the VDSO will SEGV if called with a NULL tv.

This adds a check for tv being NULL so that it doesn't SEGV.

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Update defconfigs
Paul Mackerras [Tue, 26 Jun 2007 04:19:35 +0000 (14:19 +1000)]
[POWERPC] Update defconfigs

Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Update g5_defconfig
will schmidt [Fri, 22 Jun 2007 15:24:56 +0000 (01:24 +1000)]
[POWERPC] Update g5_defconfig

Update the g5_defconfig with default settings.
This is to keep things up to date, and specifically to ensure that the
CONFIG_MACINTOSH_DRIVERS option is enabled.  This also turns on
CONFIG_MSI.

Signed-off-by: Will Schmidt <will_schmidt@vnet.ibm.com>
cc: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agofix nmi_watchdog=2 bootup hang
Björn Steinbrink [Mon, 25 Jun 2007 21:04:37 +0000 (23:04 +0200)]
fix nmi_watchdog=2 bootup hang

wrmsrl() is broken, dropping the upper 32bits of the value to be
written. This broke the NMI watchdog on AMD hardware. (and it
probably broke other code too.)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[ARM] 4449/1: more entries in arch/arm/boot/.gitignore
Nicolas Pitre [Wed, 20 Jun 2007 18:10:34 +0000 (19:10 +0100)]
[ARM] 4449/1: more entries in arch/arm/boot/.gitignore

Signed-off-by: Nicolas Pitre <npitre@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4452/1: Force the literal pool dump before reloc_end
Catalin Marinas [Fri, 22 Jun 2007 13:27:50 +0000 (14:27 +0100)]
[ARM] 4452/1: Force the literal pool dump before reloc_end

In the arch/arm/boot/compressed/head.S file, the contents of the
literal pool accumulated during the relocatable code must be dumped
before reloc_end.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoLinus 2.6.22-rc6
Linus Torvalds [Sun, 24 Jun 2007 23:21:48 +0000 (16:21 -0700)]
Linus 2.6.22-rc6

17 years agoFUTEX: Restore the dropped ERSCH fix
Thomas Gleixner [Sat, 23 Jun 2007 09:48:40 +0000 (11:48 +0200)]
FUTEX: Restore the dropped ERSCH fix

The return value of futex_find_get_task() needs to be -ESRCH in case
that the search fails.  This was part of the original futex fixes and
got accidentally dropped, when the futex-tidy-up patch was split out.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Stable Team <stable@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sun, 24 Jun 2007 16:42:15 +0000 (09:42 -0700)]
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [NET]: Make skb_seq_read unmap the last fragment
  [NET]: Re-enable irqs before pushing pending DMA requests
  [TCP] tcp_read_sock: Allow recv_actor() return return negative error value.
  [PPP]: Fix osize too small errors when decoding mppe.
  [PPP]: Revert 606f585e363527da9feaed79465132c0c661fd9e
  [TIPC]: Fix infinite loop in netlink handler
  [SKBUFF]: Fix incorrect config #ifdef around skb_copy_secmark
  [IPV4]: include sysctl.h from inetdevice.h
  [IPV6] NDISC: Fix thinko to control Router Preference support.
  [NETFILTER]: nfctnetlink: Don't allow to change helper
  [NETFILTER]: nf_conntrack_sip: add missing message types containing RTP info

17 years agoACPI: preserve the ebx value in acpi_copy_wakeup_routine
Tian Kevin [Sun, 24 Jun 2007 00:16:52 +0000 (17:16 -0700)]
ACPI: preserve the ebx value in acpi_copy_wakeup_routine

Register %ebx serves as the "global offset table base register" for
position-independent code.  For absolute code, %ebx serves as a local
register and has no specified role in the function calling sequence.  In
either case, a function must preserve the register value for the caller.

acpi_copy_wakeup_routine overrides %ebx without saving it, this may corrupt
the called data.

Kevin found that most time the value of Sx is saved in %esi, however
sometimes compiler also uses %ebx.  When this happens, suspends fails since
sleep value in ebx is changed by acpi_copy_wakeup_routine.

The same funtion in X86_64 doesn't have this problem.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Looks-okay-to: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Len Brown <lenb@kernel.org>
Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoext4: lost brelse in ext4_read_inode()
Kirill Korotaev [Sun, 24 Jun 2007 00:16:51 +0000 (17:16 -0700)]
ext4: lost brelse in ext4_read_inode()

One of error path in ext4_read_inode() leaks bh since brelse is forgoten.

Signed-off-by: Kirill Korotaev <dev@openvz.org>
Acked-by: Vasily Averin <vvs@sw.ru>
Cc: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoext3: lost brelse in ext3_read_inode()
Kirill Korotaev [Sun, 24 Jun 2007 00:16:48 +0000 (17:16 -0700)]
ext3: lost brelse in ext3_read_inode()

One of error path in ext3_read_inode() leaks bh since brelse is forgoten.

Signed-off-by: Kirill Korotaev <dev@openvz.org>
Acked-by: Vasily Averin <vvs@sw.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoaudit: fix oops removing watch if audit disabled
Tony Jones [Sun, 24 Jun 2007 00:16:47 +0000 (17:16 -0700)]
audit: fix oops removing watch if audit disabled

Removing a watched file will oops if audit is disabled (auditctl -e 0).

To reproduce:
- auditctl -e 1
- touch /tmp/foo
- auditctl -w /tmp/foo
- auditctl -e 0
- rm /tmp/foo (or mv)

Signed-off-by: Tony Jones <tonyj@suse.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoext2: disallow setting xip on remount
Carsten Otte [Sun, 24 Jun 2007 00:16:46 +0000 (17:16 -0700)]
ext2: disallow setting xip on remount

Yan Zheng pointed out that ext2_remount lacks checking if -o xip should be
enabled or not.  This patch checks for presence of direct_access on the
backing block device and if the blocksize meets the requirements.

Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Cc: Yan Zheng <yanzheng@21cn.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agox86_64: fix misplaced `continue' in mce.c
Joshua Wise [Sun, 24 Jun 2007 00:16:45 +0000 (17:16 -0700)]
x86_64: fix misplaced `continue' in mce.c

Background:
  When a userspace application wants to know about machine check events, it
  opens /dev/mcelog and does a read(). Usually, we found that this interface
  works well, but in some cases, when the system was taking large numbers of
  machine check exceptions, the read() would hang. The system would output a
  soft-lockup warning, and the daemon reading from /dev/mcelog would suck up
  as much of a single CPU as it could spinning in system space.

Description:
  This patch fixes this bug. In particular, there was a "continue" inside a
  timeout loop that presumably was intended to break out of the outer loop,
  but instead caused the inner loop to continue. This patch also makes the
  condition for the break-out a little more evident by changing a
  !time_before to a time_after_eq.

Result:
  The read() no longer hangs in this test case.

Testing:
  On my system, I could replicate the bug with the following command:
    # for i in `seq 15000`; do ./inject_sbe.sh; done
  where inject_sbe.sh contains commands to inject a single-bit error into the
  next memory write transaction.

Patch:
  This patch is against git f1518a088bde6aea49e7c472ed6ab96178fcba3e.

Signed-off-by: Joshua Wise <jwise@google.com>
Signed-off-by: Tim Hockin <thockin@google.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoupdate checkpatch.pl to version 0.06
Andy Whitcroft [Sun, 24 Jun 2007 00:16:44 +0000 (17:16 -0700)]
update checkpatch.pl to version 0.06

Update to checkpatch.pl v0.06.  Of note:

 - do { and else handled correctly as control structures for { matching
 - trailing whitespace correctly tripped when line otherwise empty
 - support for const, including const foo * const bar
 - multiline macros defining values correctly reported

This version of checkpatch.pl can be found at the following URL:

http://www.kernel.org/pub/linux/kernel/people/apw/checkpatch/checkpatch.pl-0.06

Full Changelog:

Andy Whitcroft (14):
      Version: 0.06
      cleanup the Type regular expression declarations
      fix up block counting
      end of line counts as a space for ++ and --
      do { needs the same checks as if, for et al
      handle "const foo * const a" as a valid type
      add spacing checks following ;
      complete whitespace lines should trip trailing whitespace check
      else is also a block control structure
      badly formatted else can trip function declaration
      detect and report trailing statements after else
      types need to be terminated by a boundary
      multiline macros defining values should be surrounded by parentheses
      soften the wording of the Signed-off-by: warnings

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoslab allocators: MAX_ORDER one off fix
Christoph Lameter [Sun, 24 Jun 2007 00:16:43 +0000 (17:16 -0700)]
slab allocators: MAX_ORDER one off fix

MAX_ORDER is the first order that is not possible.

Use MAX_ORDER - 1 to calculate the larges possible object size in slab.h

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agodocument nlink function
Dave Hansen [Sun, 24 Jun 2007 00:16:42 +0000 (17:16 -0700)]
document nlink function

These should have been documented from the beginning.  Fix it.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago"volatile considered harmful"
Jonathan Corbet [Sun, 24 Jun 2007 00:16:41 +0000 (17:16 -0700)]
"volatile considered harmful"

Encourage developers to avoid the volatile type class in kernel code.

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agouml: add asm/paravirt.h
Jeff Dike [Sun, 24 Jun 2007 00:16:39 +0000 (17:16 -0700)]
uml: add asm/paravirt.h

Add asm-um/paravirt.h so that i386 headers that get pulled into UML
don't cause build failures when they want asm/paravirt.h.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agouml: use generic BUG
Nick Piggin [Sun, 24 Jun 2007 00:16:37 +0000 (17:16 -0700)]
uml: use generic BUG

Get UML to use the generic bug support rather than arch specific one.

If I insert an artificial bug right before loading init, I get this:

 Kernel panic - not syncing: Kernel mode signal 4

 EIP: 0023:[<0819d501>] CPU: 0 Not tainted ESP: 002b:f7fd4fbc EFLAGS: 00000246
    Not tainted
    EAX: 00000000 EBX: 00007870 ECX: 00000013 EDX: 00007870
    ESI: 0000786d EDI: 00000011 EBP: f7fd4fd8 DS: 002b ES: 002b
    08273bec:  [<0806e814>] show_regs+0x104/0x106
    08273c08:  [<08058927>] panic_exit+0x2c/0x4b
    08273c18:  [<08080ee7>] notifier_call_chain+0x32/0x5b
    08273c38:  [<08080fbd>] __atomic_notifier_call_chain+0x30/0x32
    08273c54:  [<08080fee>] atomic_notifier_call_chain+0x2f/0x31
    08273c70:  [<08073b88>] panic+0x75/0x131
    08273c94:  [<080586c7>] relay_signal+0x87/0x95
    08273cb0:  [<0806b9ee>] sig_handler_common_skas+0x9e/0x120
    08273cd8:  [<08067738>] sig_handler+0x28/0x4f
    08273cec:  [<0806792e>] handle_signal+0x53/0x89
    08273d0c:  [<08069f60>] hard_handler+0x18/0x28
    08273d1c:  [<ffffe500>] transitions+0xf7d598b8/0xfffffff0

With this patch in place, this is how it looks:

 BUG: failure at init/main.c:779/init_post()!
 Kernel panic - not syncing: BUG!

 EIP: 0023:[<081a65d1>] CPU: 0 Not tainted ESP: 002b:f7f0dfbc EFLAGS: 00000246
    Not tainted
    EAX: 00000000 EBX: 000069db ECX: 00000013 EDX: 000069db
    ESI: 000069d8 EDI: 00000011 EBP: f7f0dfd8 DS: 002b ES: 002b
    098efedc:  [<0806e9a4>] show_regs+0x104/0x106
    098efef8:  [<080589c7>] panic_exit+0x2c/0x4b
    098eff08:  [<080818d7>] notifier_call_chain+0x32/0x5b
    098eff28:  [<080819ad>] __atomic_notifier_call_chain+0x30/0x32
    098eff44:  [<080819de>] atomic_notifier_call_chain+0x2f/0x31
    098eff60:  [<08073f28>] panic+0x75/0x131
    098eff84:  [<080541d5>] init_post+0xcd/0xe8
    098eff9c:  [<08048ad4>] kernel_init+0x8e/0x9a
    098effb4:  [<08066dee>] run_kernel_thread+0x41/0x53
    098effe0:  [<08058e75>] new_thread_handler+0x62/0x8b
    098efffc:  [<a55a5a5a>] 0xa55a5a5a

[ jdike - added BUG_TABLE to linker script ]

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoChar: stallion, fix oops during init with ISA cards
Ingo Korb [Sun, 24 Jun 2007 00:16:35 +0000 (17:16 -0700)]
Char: stallion, fix oops during init with ISA cards

The stallion driver oopses while initializing ISA cards due to an
uninitialized variable.  This patch changes the initialisation order to
match the PCI code path.

Signed-off-by: Ingo Korb <ml@akana.de>
Acked-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoalpha: fix alignment problem in csum_ipv6_magic()
Ivan Kokshaysky [Sun, 24 Jun 2007 00:16:35 +0000 (17:16 -0700)]
alpha: fix alignment problem in csum_ipv6_magic()

Hopefully this fixes http://bugzilla.kernel.org/show_bug.cgi?id=8635

The struct in6_addr passed to csum_ipv6_magic() is 4 byte aligned, so we
can't use the regular 64-bit loads.  Since the cost of handling of 4 byte
and 1 byte aligned 64-bit data is roughly the same, this code can cope with
any src/dst [mis]alignment.

Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Dustin Marquess <jailbird@alcatraz.fdf.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoupdate checkpatch.pl to version 0.05
Andy Whitcroft [Sun, 24 Jun 2007 00:16:34 +0000 (17:16 -0700)]
update checkpatch.pl to version 0.05

This version brings a some new tests, and a host of changes to fix
false positives, of particular note:

 - detect 'var ++;' and 'var --;' as a bad combination
 - multistatement #defines are now checked based on statement count
 - multistatement #defines with initialisation correctly reported
 - checks the location of the inline keywords
 - EXPORT_SYMBOL for variables are now understood
 - typedefs are loosened to handle sparse etc

This version of checkpatch.pl can be found at the following URL:

      http://www.shadowen.org/~apw/public/checkpatch/checkpatch.pl-0.05

Full Changelog:

Andy Whitcroft (18):
      Version: 0.05
      macro definition checks should be for a single statement
      avoid assignements only in if conditionals
      declarations of function pointers need no space
      multiline macros which are purely initialisation cannot be wrapped
      EXPORT_SYMBOL can also directly follow a variable definition
      check on the location of the inline keyword
      EXPORT_SYMBOL needs to allow for attributes
      ensure we do not find C99 // in strings
      handle malformed #include lines
      accept the {0,} form
      typedefs are sensible for defining function pointer parameters
      ensure { handling correctly handles nested switch() statements
      trailing whitespace checks are not anchored
      typedefs for sparse bitwise annotations make sense
      update the type matcher to include sparse annotations
      clean up indent and spacing

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agosched: fix next_interval determination in idle_balance()
Christoph Lameter [Sun, 24 Jun 2007 00:16:33 +0000 (17:16 -0700)]
sched: fix next_interval determination in idle_balance()

The intervals of domains that do not have SD_BALANCE_NEWIDLE must be
considered for the calculation of the time of the next balance.  Otherwise
we may defer rebalancing forever.

Siddha also spotted that the conversion of the balance interval
to jiffies is missing. Fix that to.

From: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>

also continue the loop if !(sd->flags & SD_LOAD_BALANCE).

Tested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
It did in fact trigger under all three of mainline, CFS, and -rt including CFS
-- see below for a couple of emails from last Friday giving results for these
three on the AMD box (where it happened) and on a single-quad NUMA-Q system
(where it did not, at least not with such severity).

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSLUB: fix behavior if the text output of list_locations overflows PAGE_SIZE
Christoph Lameter [Sun, 24 Jun 2007 00:16:32 +0000 (17:16 -0700)]
SLUB: fix behavior if the text output of list_locations overflows PAGE_SIZE

If slabs are allocated or freed from a large set of call sites (typical for
the kmalloc area) then we may create more output than fits into a single
PAGE and sysfs only gives us one page.  The output should be truncated.
This patch fixes the checks to do the truncation properly.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSM501: Check SM501 ID register on initialisation
Ben Dooks [Sun, 24 Jun 2007 00:16:31 +0000 (17:16 -0700)]
SM501: Check SM501 ID register on initialisation

When binding the driver, check the ID register for a valid identity, in case
the SM501 is not functioning correctly.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSM501: Add Documentation/SM501.txt
Ben Dooks [Sun, 24 Jun 2007 00:16:31 +0000 (17:16 -0700)]
SM501: Add Documentation/SM501.txt

Add documentation for the SM501 in Documentation/SM501.txt outlining the SM501
driver.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSM501: Clock updates and checks
Ben Dooks [Sun, 24 Jun 2007 00:16:30 +0000 (17:16 -0700)]
SM501: Clock updates and checks

Ensure that the M1XCLK and MCLK are sourced from the same PLL (and refuse to
bind the driver if they are not).

Update the PCI to safe initialisation values, as 72MHz is the maximum clock
for 33MHz PCI bus mastering.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSM501: Fix sm501_init_reg() mask/set order
Ben Dooks [Sun, 24 Jun 2007 00:16:29 +0000 (17:16 -0700)]
SM501: Fix sm501_init_reg() mask/set order

The order of the set and mask operation in sm501_init_reg() was setting and
then masking the bits set.  Correct the order so that we do not end up with
288MHz SDRAM clocks on certain systems.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSM501: initialise SDRAM clock before bus clocks
Ben Dooks [Sun, 24 Jun 2007 00:16:29 +0000 (17:16 -0700)]
SM501: initialise SDRAM clock before bus clocks

This init sequence of setting the SDRAM clock before the bus clock is
recommend by Silicon Motion to stop problems with writes not sticking into
registers.

Signed-off-by: Vincent Sanders <vince@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSM501: suspend support
Ben Dooks [Sun, 24 Jun 2007 00:16:28 +0000 (17:16 -0700)]
SM501: suspend support

This patch adds support for suspending the core (mfd driver) of the SM501.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoconsole UTF-8 fixes (fix)
Egmont Koblinger [Sun, 24 Jun 2007 00:16:27 +0000 (17:16 -0700)]
console UTF-8 fixes (fix)

Recently my console UTF-8 patch went mainline.  Here is an additional patch
that fixes two nasty issues and improves a third one, namely:

1. My patch changed the behavior if a glyph is not found in the Unicode
   mapping table. Previously for Unicode values less than 256 or 512 the
   kernel tried to display the glyph from that position of the glyph table,
   which could lead to a different accented letter being displayed. I
   removed this fallback possibility and changed it to display the
   replacement symbol.

   As Behdad pointed out, some fonts (e.g. sun12x22 from the kbd package)
   lack Unicode mapping information, hence all you get is lots of question
   marks. Though theoretically it's actually a user-space bug (the font
   should be fixed), Behdad and I both believe that it'd be good to work
   around in the kernel by re-introducing the fallback solution for ASCII
   characters only. This sounds a quite reasonable decision, since all fonts
   ship the ASCII characters in the first 128 positions. This way users
   won't be surprised by lots of question marks just because s/he issued a
   not-so-perfectly parameterized setfont command. As this fallback is only
   re-introduced for code points below 128, you still won't see an accented
   letter replaced by another, but at least you'll always get the English
   letters right.

2. My patch introduced "question mark with inverted color attributes" as a
   last resort fallback glyph. Though it perfectly works on VGA console, on
   framebuffer you may end up with question marks that are highlighed but
   shouldn't be, and normal characters that are accidentally highlighed.
   This is caused by missing FLUSHes when changing the color attribute.

3. I've updated the table of double-width character based on Markus's
   updated version. Only ten new code poings (one interval) is added.

Signed-off-by: Egmont Koblinger <egmont@uhulinux.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agofix refcounting of nsproxy object when unshared
Cedric Le Goater [Sun, 24 Jun 2007 00:16:25 +0000 (17:16 -0700)]
fix refcounting of nsproxy object when unshared

When a namespace is unshared, a refcount on the previous nsproxy is
abusively taken, leading to a memory leak of nsproxy objects.

Signed-off-by: Cedric Le Goater <clg@fr.ibm.com>
Cc: Badari Pulavarty <pbadari@us.ibm.com>
Cc: Herbert Poetzl <herbert@13thfloor.at>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agohwmon/coretemp: fix a broken error path
Jean Delvare [Sun, 24 Jun 2007 00:16:24 +0000 (17:16 -0700)]
hwmon/coretemp: fix a broken error path

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Rudolf Marek <r.marek@assembler.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[NET]: Make skb_seq_read unmap the last fragment
Olaf Kirch [Sun, 24 Jun 2007 06:11:52 +0000 (23:11 -0700)]
[NET]: Make skb_seq_read unmap the last fragment

Having walked through the entire skbuff, skb_seq_read would leave the
last fragment mapped.  As a consequence, the unwary caller would leak
kmaps, and proceed with preempt_count off by one. The only (kind of
non-intuitive) workaround is to use skb_seq_read_abort.

This patch makes sure skb_seq_read always unmaps frag_data after
having cycled through the skb's paged part.

Signed-off-by: Olaf Kirch <olaf.kirch@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: Re-enable irqs before pushing pending DMA requests
Shannon Nelson [Sun, 24 Jun 2007 06:09:23 +0000 (23:09 -0700)]
[NET]: Re-enable irqs before pushing pending DMA requests

This moves the local_irq_enable() call in net_rx_action() to before
calling the CONFIG_NET_DMA's dma_async_memcpy_issue_pending() rather
than after.  This shortens the irq disabled window and allows for DMA
drivers that need to do their own irq hold.

Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP] tcp_read_sock: Allow recv_actor() return return negative error value.
Jens Axboe [Sun, 24 Jun 2007 06:07:50 +0000 (23:07 -0700)]
[TCP] tcp_read_sock: Allow recv_actor() return return negative error value.

tcp_read_sock() currently assumes that the recv_actor() only returns
number of bytes copied. For network splice receive, we may have to
return an error in some cases. So allow the actor to return a negative
error value.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[PPP]: Fix osize too small errors when decoding mppe.
Konstantin Sharlaimov [Sun, 24 Jun 2007 06:05:54 +0000 (23:05 -0700)]
[PPP]: Fix osize too small errors when decoding mppe.

The mppe_decompress() function required a buffer that is 1 byte too
small when receiving a message of mru size. This fixes buffer
allocation to prevent this from occurring.

Signed-off-by: Konstantin Sharlaimov <konstantin.sharlaimov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[PPP]: Revert 606f585e363527da9feaed79465132c0c661fd9e
David S. Miller [Sun, 24 Jun 2007 06:04:11 +0000 (23:04 -0700)]
[PPP]: Revert 606f585e363527da9feaed79465132c0c661fd9e

This can cause packet buffer overflows in certain cases,
the real bug will be fixed differently in a followon
changeset.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TIPC]: Fix infinite loop in netlink handler
Florian Westphal [Sun, 24 Jun 2007 05:59:40 +0000 (22:59 -0700)]
[TIPC]: Fix infinite loop in netlink handler

The tipc netlink config handler uses the nlmsg_pid from the
request header as destination for its reply. If the application
initialized nlmsg_pid to 0, the reply is looped back to the kernel,
causing hangup. Fix: use nlmsg_pid of the skb that triggered the
request.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SKBUFF]: Fix incorrect config #ifdef around skb_copy_secmark
Patrick McHardy [Sun, 24 Jun 2007 05:58:34 +0000 (22:58 -0700)]
[SKBUFF]: Fix incorrect config #ifdef around skb_copy_secmark

secmark doesn't depend on CONFIG_NET_SCHED.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Acked-by: James Morris <jmorris@namei.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
Linus Torvalds [Sat, 23 Jun 2007 22:12:53 +0000 (15:12 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/lenb/linux-acpi-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
  ACPI: fix 2.6.20 SMP boot regression
  ACPICA: fix error path in new external package objects as method arguments
  ACPI: gracefully print null trip-point device

17 years agoPull now into release branch
Len Brown [Sat, 23 Jun 2007 14:58:24 +0000 (10:58 -0400)]
Pull now into release branch

17 years agoACPI: fix 2.6.20 SMP boot regression
Venkatesh Pallipadi [Fri, 15 Jun 2007 23:36:00 +0000 (19:36 -0400)]
ACPI: fix 2.6.20 SMP boot regression

Always disable/enable interrupts in the acpi idle routine,
even in the error path.

This is required as the 2.6.20 change in git commit d331e739f5ad2aaa9...
"Fix interrupt race in idle callback" expects the idle handler
to enable interrupt before returning.

There was a case in acpi idle routine, in which interrupt was not being
enabled before return, which caused the system to hang at bootup, while
enabling C-states on an SMP system.

The signature of the hang was that "processor.nocst"
was required to enable boot.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years ago[AVR32] Update defconfigs
Haavard Skinnemoen [Sat, 23 Jun 2007 13:43:48 +0000 (15:43 +0200)]
[AVR32] Update defconfigs

Update defconfigs for ATNGW100 and ATSTK1002. This will enable the
SLUB allocator by default on both, and will enable NFS root on
ATSTK1002 (ATNGW100 had it enabled before.)

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
17 years ago[AVR32] Initialize dma_mask and dma_coherent_mask
David Brownell [Sat, 23 Jun 2007 02:17:57 +0000 (19:17 -0700)]
[AVR32] Initialize dma_mask and dma_coherent_mask

The current at32ap7000 platform devices aren't declared as supporting DMA,
so that layered drivers can't tell whether they need to manage DMA.

This patch makes all those platform devices report that they support DMA.
Most do, but in a few cases this is inappropriate.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
17 years ago[AVR32] NGW100, Remove relics of the old USART mapping scheme
ben.nizette@iinet.net.au [Wed, 20 Jun 2007 12:44:30 +0000 (20:44 +0800)]
[AVR32] NGW100, Remove relics of the old USART mapping scheme

USART mapping used to be accomplished by the manual filling of
at32_usart_map[] and at32_nr_usarts.  This has now been replaced
with at32_map_usart() so we can remove these variables.

Signed-off-by: Ben Nizette <ben.nizette@iinet.net.au>
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
17 years ago[AVR32] Fix bug in invalidate_dcache_region()
Haavard Skinnemoen [Mon, 18 Jun 2007 12:08:18 +0000 (14:08 +0200)]
[AVR32] Fix bug in invalidate_dcache_region()

If (start + size) is not cacheline aligned and (start & mask) > (end &
mask), the last but one cacheline won't be invalidated as it should.
Fix this by rounding `end' down to the nearest cacheline boundary if
it gets adjusted due to misalignment.

Also flush the write buffer unconditionally -- if the dcache wrote
back a line just before we invalidated it, the dirty data may be
sitting in the write buffer waiting to corrupt our buffer later.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
17 years agox86_64: Ignore compat mode SYSCALL when IA32_EMULATION is not defined
Andi Kleen [Sat, 23 Jun 2007 00:29:25 +0000 (02:29 +0200)]
x86_64: Ignore compat mode SYSCALL when IA32_EMULATION is not defined

Previously a program could switch to a compat mode segment and then
execute SYSCALL and it would jump to an uninitialized MSR and crash
the kernel.

Instead supply a dummy target for this case.

Pointed out by Jan Beulich

Cc: jbeulich@novell.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agox86_64: Fix only make Macintosh drivers default on Macs
Olaf Hering [Sat, 23 Jun 2007 00:29:24 +0000 (02:29 +0200)]
x86_64: Fix only make Macintosh drivers default on Macs

Include PPC_MAC in the default too, not only MAC which only covers
m68k MACs.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoi386: Make CMPXCHG64 only dependent on PAE
Andi Kleen [Sat, 23 Jun 2007 00:29:23 +0000 (02:29 +0200)]
i386: Make CMPXCHG64 only dependent on PAE

It is only used for PAE kernels in set_64bit.

The problem is that due to a old Windows bug many CPUs need magic MSRs
to enable CMPXCHG64, and we can't do that nicely early enough before
it is potentially used.

But since we only need it in PAE kernels so only force the checking
for CMPXCHG65 with PAE.

This fixes a boot failure on Transmeta Crusoe

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[IPV4]: include sysctl.h from inetdevice.h
Satyam Sharma [Sat, 23 Jun 2007 00:04:27 +0000 (17:04 -0700)]
[IPV4]: include sysctl.h from inetdevice.h

When CONFIG_INET=y and CONFIG_SYSCTL=n:

In file included from net/core/netpoll.c:16:
include/linux/inetdevice.h:15: error:
'__NET_IPV4_CONF_MAX' undeclared here (not in a function)
make[2]: *** [net/core/netpoll.o] Error 1
make[1]: *** [net/core] Error 2
make: *** [net] Error 2

So #include sysctl.h from inetdevice.h.

Signed-off-by: Satyam Sharma <satyam.sharma@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV6] NDISC: Fix thinko to control Router Preference support.
YOSHIFUJI Hideaki [Fri, 22 Jun 2007 23:07:04 +0000 (16:07 -0700)]
[IPV6] NDISC: Fix thinko to control Router Preference support.

Bug reported by Haruhito Watanabe <haruhito@sfc.keio.ac.jp>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NETFILTER]: nfctnetlink: Don't allow to change helper
Yasuyuki Kozakai [Fri, 22 Jun 2007 21:10:22 +0000 (14:10 -0700)]
[NETFILTER]: nfctnetlink: Don't allow to change helper

There is no realistic situation to change helper (Who wants IRC helper to
track FTP traffic ?). Moreover, if we want to do that, we need to fix race
issue by nfctnetlink and running helper. That will add overhead to packet
processing. It wouldn't pay. So this rejects the request to change
helper. The requests to add or remove helper are accepted as ever.

Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NETFILTER]: nf_conntrack_sip: add missing message types containing RTP info
Jerome Borsboom [Fri, 22 Jun 2007 21:08:17 +0000 (14:08 -0700)]
[NETFILTER]: nf_conntrack_sip: add missing message types containing RTP info

Signed-off-by: Jerome Borsboom <j.borsboom@erasmusmc.nl>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfi...
Linus Torvalds [Fri, 22 Jun 2007 18:11:33 +0000 (11:11 -0700)]
Merge branch 'master' of /linux/kernel/git/cooloney/blackfin-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6:
  Blackfin arch: add proper const volatile to addr argument to the read functions
  Blackfin arch: Add definition of dma_mapping_error
  Blackfin arch: move cond_syscall() behind __KERNEL__ like all other architectures
  Blackfin arch: match kernel startup messaage with new linker script
  Blackfin arch: add missing braces around array bfin serial init
  Blackfin arch: update printk to use KERN_EMERG and reformat crash output
  Blackfin arch: update ANOMALY handling

17 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
Linus Torvalds [Fri, 22 Jun 2007 18:10:34 +0000 (11:10 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/roland/infiniband

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
  IB/mlx4: Correct max_srq_wr returned from mlx4_ib_query_device()
  IPoIB/cm: Remove dead definition of struct ipoib_cm_id
  IPoIB/cm: Fix interoperability when MTU doesn't match
  IPoIB/cm: Initialize RX before moving QP to RTR
  IB/umem: Fix possible hang on process exit

17 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Fri, 22 Jun 2007 18:10:05 +0000 (11:10 -0700)]
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [AF_RXRPC]: Return the number of bytes buffered in rxrpc_send_data()
  [IPVS]: Fix state variable on failure to start ipvs threads
  [XFRM]: Fix MTU calculation for non-ESP SAs

17 years agoAllow DEBUG_RODATA and KPROBES to co-exist
Arjan van de Ven [Thu, 21 Jun 2007 05:23:21 +0000 (22:23 -0700)]
Allow DEBUG_RODATA and KPROBES to co-exist

Do not mark the kernel text read only if KPROBES is in the kernel;
kprobes needs to hot-patch the kernel text to insert it's
instrumentation.

In this case, only mark the .rodata segment as read only.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Tested-by: S. P. Prasanna <prasanna@in.ibm.com>
Cc: Andi Kleen <ak@suse.de>
Cc: William Cohen <wcohen@redhat.com>
Cc: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
Linus Torvalds [Thu, 21 Jun 2007 22:59:11 +0000 (15:59 -0700)]
Merge /pub/scm/linux/kernel/git/davej/agpgart

* master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart:
  [AGPGART] intel_agp: don't load if no IGD and AGP port

17 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6
Linus Torvalds [Thu, 21 Jun 2007 22:57:50 +0000 (15:57 -0700)]
Merge branch 'master' of git://git./linux/kernel/git/kyle/parisc-2.6

* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
  [PARISC] unwinder improvements
  [PARISC] Fix unwinder on 64-bit kernels
  [PARISC] Handle wrapping in expand_upwards()
  [PARISC] stop lcd driver from stripping initial whitespace

17 years agoposix-timers: Prevent softirq starvation by small intervals and SIG_IGN
Thomas Gleixner [Thu, 21 Jun 2007 20:45:15 +0000 (20:45 +0000)]
posix-timers: Prevent softirq starvation by small intervals and SIG_IGN

posix-timers which deliver an ignored signal are currently rearmed in
the timer softirq: This is necessary because the timer needs to be
delivered again when SIG_IGN is removed. This is not a problem, when
the interval is reasonable.

With high resolution timers enabled one might arm a posix timer with a
very small interval and ignore the signal. This might lead to a
softirq starvation when the interval is so small that the timer is
requeued onto the softirq pending list right away.

This problem was pointed out by Jan Kiszka. Thanks Jan !

The correct solution would be to stop the timer, when the signal is
ignored and rearm it when SIG_IGN is removed. Unfortunately this
requires modification in sigaction and involves non trivial sighand
locking. It's too late in the release cycle for such a change.

For now we just keep the timer running and enforce that the timer only
fires every jiffie. This does not break anything as we keep the
overrun counter correct. It adds a little inaccuracy to the
timer_gettime() interface, but...

The more complex change is necessary anyway to fix another short
coming of the current implementation, which I discovered while looking
at this problem: A pending signal is discarded when SIG_IGN is set. In
case that a posixtimer signal is pending then it is discarded as well,
but when SIG_IGN is removed later nothing rearms the timer. This is
not new, it's that way since posix timers have been merged. So nothing
to worry about right now.

I have a working solution to fix all of this, but the impact is too
large for both stable and 2.6.22. I'm going to send it out for review
in the next days.

This should go into 2.6.21.stable as well.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Jan Kiszka <jan.kiszka@web.de>
Cc: Ulrich Drepper <drepper@redhat.com>
Cc: Stable Team <stable@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agopage_mapping must avoid slub pages
Hugh Dickins [Thu, 21 Jun 2007 22:27:45 +0000 (23:27 +0100)]
page_mapping must avoid slub pages

Nicolas Ferre reports oops from flush_dcache_page() on ARM when using
SLUB: which reuses page->mapping as page->slab.  The page_mapping()
function, used by ARM and PA-RISC flush_dcache_page() implementations,
must not confuse SLUB pages with those which have page->mapping set.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Cc: Nicolas Ferre <nicolas.ferre@rfo.atmel.com>
Cc: Christoph Lameter <clameter@sgi.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PARISC] unwinder improvements
Randolph Chung [Tue, 12 Jun 2007 06:27:32 +0000 (14:27 +0800)]
[PARISC] unwinder improvements

Add special-case handling for "handle_interruption" so that we can rewind
past the interruption. This is useful for seeing what caused a BUG() or
WARN_ON(); otherwise the unwind stops at the interruption.

Signed-off-by: Randolph Chung <tausq@debian.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
17 years ago[PARISC] Fix unwinder on 64-bit kernels
Randolph Chung [Tue, 12 Jun 2007 06:27:32 +0000 (14:27 +0800)]
[PARISC] Fix unwinder on 64-bit kernels

The unwinder was broken by the shift of PAGE_OFFSET in order to increase the
size of the vmalloc area on 64-bit kernels.

Signed-off-by: Randolph Chung <tausq@debian.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>