13 years ago[ALSA] Clean up sa11xx-uda1341 driver
Takashi Iwai [Thu, 17 Nov 2005 09:25:22 +0000]
[ALSA] Clean up sa11xx-uda1341 driver

Modules: SA11xx UDA1341 driver,L3 drivers,UDA1341

Clean up sa11xx-uda1341 driver:

- Fix buggy destructor
- Remove the global variable
- Move array definitions from uda1341.h
- Make functions in uda1341.c static

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] Remove tea6330t struct definition from public header
Takashi Iwai [Thu, 17 Nov 2005 09:22:32 +0000]
[ALSA] Remove tea6330t struct definition from public header

Modules: I2C tea6330t

Remove tea6330t struct definition from public header.
It's anyway unaccessible from outside.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] Remove snd_vx_delay() function
Takashi Iwai [Thu, 17 Nov 2005 09:21:19 +0000]
[ALSA] Remove snd_vx_delay() function

Replace snd_vx_delay() with appropriate delay/sleep functions.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] snd-dummy - Code clean-up
Takashi Iwai [Thu, 17 Nov 2005 09:20:23 +0000]
[ALSA] snd-dummy - Code clean-up

Modules: Generic drivers

Clean up snd-dummy driver code.
- Make common PCM callbacks
- Simplify open callback
- Remove unnecessary irqsave in control callbacks

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] Use standard bitmap functions
Takashi Iwai [Thu, 17 Nov 2005 09:18:00 +0000]
[ALSA] Use standard bitmap functions

Modules: ALSA<-OSS emulation

Use standard bitmap functions instead of in-house ones.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] Sort Kconfig entries
Takashi Iwai [Thu, 17 Nov 2005 09:17:05 +0000]
[ALSA] Sort Kconfig entries

Modules: ISA,PCI drivers

Sort Kconfig entries in alphabetical order.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] Minor clean up and fixes for CS5535 audio driver
Takashi Iwai [Thu, 17 Nov 2005 09:15:37 +0000]
[ALSA] Minor clean up and fixes for CS5535 audio driver

Modules: Documentation,CS5535 driver

Minor clean up and fixes for CS5535 audio driver.
Added an entry in ALSA-Configuration.txt, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] Add support for the CS5535 Audio device
Jaya Kumar [Thu, 17 Nov 2005 09:12:23 +0000]
[ALSA] Add support for the CS5535 Audio device

Add support for the CS5535 Audio device.  I've fixed up some errors as per
Takashi's advice from the thread:

http://lkml.org/lkml/2005/9/15/119

 From: Alan Cox <alan@lxorguk.ukuu.org.uk>

        cs5535 is a 32bit x86 only device using weird CPU features

Signed-off-by: Jaya Kumar <jayakumar.alsa@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] Remove superfluous pcm_free callbacks
Takashi Iwai [Wed, 16 Nov 2005 17:43:35 +0000]
[ALSA] Remove superfluous pcm_free callbacks

Remove superflous pcm_free callbacks.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] Fix missing suspend/resume-code for ens1371
Kurt J. Bosch [Wed, 16 Nov 2005 17:41:21 +0000]
[ALSA] Fix missing suspend/resume-code for ens1371

Modules: ENS1370/1+ driver

This patch fixes missing suspend/resume-code for snd-ens1371
(but not for snd-ens1370)

Signed-off-by: Kurt J. Bosch <kjb-temp-2005@gmx.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] hda-codec - Fix HDA sound and V.92 modem for notebook Siemens FieldPG-M
Daniel Mueller [Mon, 14 Nov 2005 16:40:44 +0000]
[ALSA] hda-codec - Fix HDA sound and V.92 modem for notebook Siemens FieldPG-M

Modules: HDA Codec driver

The patch fixes the problem of mute onboard HDA sound output,
buildin V.92 modem idendification and functionality.

Signed-off-by: Daniel Mueller <daniel.mueller@siemens.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] ac97 - procfs - print PCI subsystem vendor/device values
Jaroslav Kysela [Mon, 14 Nov 2005 07:48:59 +0000]
[ALSA] ac97 - procfs - print PCI subsystem vendor/device values

Modules: AC97 Codec

For debugging and problem finding purposes, show also the PCI subsystem
vendor/device values in the ac97#X proc file.

Signed-off-by: Jaroslav Kysela <perex@suse.cz>

13 years ago[ALSA] snd-emu10k1: Found some new registers to display in debug mode.
James Courtier-Dutton [Fri, 11 Nov 2005 22:45:23 +0000]
[ALSA] snd-emu10k1: Found some new registers to display in debug mode.

Modules: EMU10K1/EMU10K2 driver

Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>

13 years ago[ALSA] snd-emu10k1: Attenuate output volume to reduce distortion
James Courtier-Dutton [Fri, 11 Nov 2005 22:39:05 +0000]
[ALSA] snd-emu10k1: Attenuate output volume to reduce distortion

Modules: EMU10K1/EMU10K2 driver

                      on Audigy 2 ZS Notebook.

Set the master volume to about 6 or 8% in alsamixer. This will
attenuate the output enough for better sound quality.
Note: Only stereo enabled at present.
The distortion is caused by the output path after the DSP
adding 12dB gain to the output while still in digital mode,
resulting in wrap around distortion.

Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>

13 years ago[ALSA] ali5451 - Fix and clean up codec accessor
Takashi Iwai [Fri, 11 Nov 2005 20:05:27 +0000]
[ALSA] ali5451 - Fix and clean up codec accessor

Modules: ALI5451 driver

Fix the codec accessors to avoid soft lockup.
Spin locks are revised, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] ice1724 (juli) - forced analog doughter board detection
Jaroslav Kysela [Thu, 10 Nov 2005 06:51:31 +0000]
[ALSA] ice1724 (juli) - forced analog doughter board detection

Modules: ICE1712 driver

Signed-off-by: Jaroslav Kysela <perex@suse.cz>

13 years ago[ALSA] via82xx - Add dxs entry for MSI KT800 Delta-FSR
Takashi Iwai [Tue, 8 Nov 2005 16:44:37 +0000]
[ALSA] via82xx - Add dxs entry for MSI KT800 Delta-FSR

Modules: VIA82xx driver

Added the dxs entry for MSI KT800 Delta-FSR.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] Add support for Audigy 2 subsystem 2006
Lee Revell [Mon, 7 Nov 2005 13:59:19 +0000]
[ALSA] Add support for Audigy 2 subsystem 2006

Modules: EMU10K1/EMU10K2 driver

Add support for Audigy 2 subsystem 2006.

Signed-off-by: Lee Revell <rlrevell@joe-job.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] emu10k1 - Enable side surround channels for Audigy2 EX
Lee Revell [Mon, 7 Nov 2005 13:54:24 +0000]
[ALSA] emu10k1 - Enable side surround channels for Audigy2 EX

Modules: EMU10K1/EMU10K2 driver

Enable side surround channels for Audigy2 EX.  Tested by Rick Wright
<riwright@vt.edu>.

Signed-off-by: Lee Revell <rlrevell@joe-job.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] sound/hda: rate-limit timeout message
Randy Dunlap [Mon, 7 Nov 2005 13:43:23 +0000]
[ALSA] sound/hda: rate-limit timeout message

Modules: HDA Intel driver

Rate-limit the azx_get_response timeout message.  A continuous 2 per second
is too much.

Signed-off-by: Randy Dunlap <randy_d_dunlap@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years ago[ALSA] hda-codec - Allocate amp hash array dynamically
Takashi Iwai [Mon, 7 Nov 2005 13:38:44 +0000]
[ALSA] hda-codec - Allocate amp hash array dynamically

Modules: HDA Codec driver

Allocate amp hash array dynamically instead of static array.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

13 years agoLinux v2.6.15
Linus Torvalds [Tue, 3 Jan 2006 03:21:10 +0000]
Linux v2.6.15

Hey, it's fifteen years today since I bought the machine that got Linux
started.  January 2nd is a good date.

13 years ago[PATCH] Make sure interleave masks have at least one node set
Andi Kleen [Mon, 2 Jan 2006 23:07:28 +0000]
[PATCH] Make sure interleave masks have at least one node set

Otherwise a bad mem policy system call can confuse the interleaving
code into referencing undefined nodes.

Originally reported by Doug Chapman

I was told it's CVE-2005-3358
(one has to love these security people - they make everything sound important)

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] Avoid namespace pollution in <asm/param.h>
Dag-Erling Smørgrav [Mon, 2 Jan 2006 14:57:06 +0000]
[PATCH] Avoid namespace pollution in <asm/param.h>

In commit 3D59121003721a8fad11ee72e646fd9d3076b5679c, the x86 and x86-64
<asm/param.h> was changed to include <linux/config.h> for the
configurable timer frequency.

However, asm/param.h is sometimes used in userland (it is included
indirectly from <sys/param.h>), so your commit pollutes the userland
namespace with tons of CONFIG_FOO macros.  This greatly confuses
software packages (such as BusyBox) which use CONFIG_FOO macros
themselves to control the inclusion of optional features.

After a short exchange, Christoph approved this patch

Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] powerpc: more g5 overtemp problem fix
Benjamin Herrenschmidt [Mon, 2 Jan 2006 02:04:44 +0000]
[PATCH] powerpc: more g5 overtemp problem fix

Some G5s still occasionally experience shutdowns due to overtemp
conditions despite the recent fix. After analyzing logs from such
machines, it appears that the overtemp code is a bit too quick at
shutting the machine down when reaching the critical temperature (tmax +
8) and doesn't leave the fan enough time to actually cool it down. This
happens if the temperature of a CPU suddenly rises too high in a very
short period of time, or occasionally on boot (that is the CPUs are
already overtemp by the time the driver loads).

This patches makes the code a bit more relaxed, leaving a few seconds to
the fans to do their job before kicking the machine shutown.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] x86: teach dump_task_regs() about the -8 offset.
Stas Sergeev [Sun, 1 Jan 2006 01:18:52 +0000]
[PATCH] x86: teach dump_task_regs() about the -8 offset.

This should fix multi-threaded core-files

Signed-off-by: stsp@aknet.ru
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agosysctl: make sure to terminate strings with a NUL
Linus Torvalds [Sun, 1 Jan 2006 01:00:29 +0000]
sysctl: make sure to terminate strings with a NUL

This is a slightly more complete fix for the previous minimal sysctl
string fix.  It always terminates the returned string with a NUL, even
if the full result wouldn't fit in the user-supplied buffer.

The returned length is the full untruncated length, so that you can
tell when truncation has occurred.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agoMerge master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Sat, 31 Dec 2005 21:49:26 +0000]
Merge master.kernel.org:/home/rmk/linux-2.6-serial

13 years ago[PATCH] Fix false old value return of sysctl
Yi Yang [Fri, 30 Dec 2005 08:37:10 +0000]
[PATCH] Fix false old value return of sysctl

For the sysctl syscall, if the user wants to get the old value of a
sysctl entry and set a new value for it in the same syscall, the old
value is always overwritten by the new value if the sysctl entry is of
string type and if the user sets its strategy to sysctl_string.  This
issue lies in the strategy being run twice if the strategy is set to
sysctl_string, the general strategy sysctl_string always returns 0 if
success.

Such strategy routines as sysctl_jiffies and sysctl_jiffies_ms return 1
because they do read and write for the sysctl entry.

The strategy routine sysctl_string return 0 although it actually read
and write the sysctl entry.

According to my analysis, if a strategy routine do read and write, it
should return 1, if it just does some necessary check but not read and
write, it should return 0, for example sysctl_intvec.

Signed-off-by: Yi Yang <yang.y.yi@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agosysctl: don't overflow the user-supplied buffer with '\0'
Linus Torvalds [Sat, 31 Dec 2005 01:18:53 +0000]
sysctl: don't overflow the user-supplied buffer with '\0'

If the string was too long to fit in the user-supplied buffer,
the sysctl layer would zero-terminate it by writing past the
end of the buffer. Don't do that.

Noticed by Yi Yang <yang.y.yi@gmail.com>

Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agoInsanity avoidance in /proc
Linus Torvalds [Fri, 30 Dec 2005 16:39:10 +0000]
Insanity avoidance in /proc

The old /proc interfaces were never updated to use loff_t, and are just
generally broken.  Now, we should be using the seq_file interface for
all of the proc files, but converting the legacy functions is more work
than most people care for and has little upside..

But at least we can make the non-LFS rules explicit, rather than just
insanely wrapping the offset or something.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] Input: wacom - fix X axis setup
Denny Priebe [Fri, 30 Dec 2005 03:19:09 +0000]
[PATCH] Input: wacom - fix X axis setup

This patch fixes a typo introduced by conversion to dynamic input_dev
allocation.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] Input: warrior - fix HAT0Y axis setup
Dmitry Torokhov [Fri, 30 Dec 2005 03:19:08 +0000]
[PATCH] Input: warrior - fix HAT0Y axis setup

This patch fixes a typo introduced by conversion to dynamic input_dev
allocation.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] Input: kbtab - fix Y axis setup
Dmitry Torokhov [Fri, 30 Dec 2005 03:19:07 +0000]
[PATCH] Input: kbtab - fix Y axis setup

This patch fixes a typo introduced by conversion to dynamic input_dev
allocation.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[ARM] 3216/1: indent and typo in drivers/serial/pxa.c
Erik Hovland [Fri, 30 Dec 2005 15:57:35 +0000]
[ARM] 3216/1: indent and typo in drivers/serial/pxa.c

Patch from Erik Hovland

This patch provides two changes. An indent is supplied for an if/else clause so that it is more readable. An acronym is incorrectly typed as UER when it should be IER.

Signed-off-by: Erik Hovland <erik@hovland.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

13 years ago[PATCH] Simplify the VIDEO_SAA7134_OSS Kconfig dependency line
Jean Delvare [Thu, 29 Dec 2005 21:07:30 +0000]
[PATCH] Simplify the VIDEO_SAA7134_OSS Kconfig dependency line

Thanks to Roman Zippel for the suggestion.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
[ Short explanation: Kconfig uses ternary math: n/m/y, and !m is m ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agoRevert radeon AGP aperture offset changes
Linus Torvalds [Thu, 29 Dec 2005 21:01:54 +0000]
Revert radeon AGP aperture offset changes

This reverts the series of commits

67dbb4ea33731415fe09c62149a34f472719ac1d
281ab031a8c9e5b593142eb4ec59a87faae8676a
47807ce381acc34a7ffee2b42e35e96c0f322e52

that changed the GART VM start offset.  It fixed some machines, but
seems to continually interact badly with some X versions.

Quoth Ben Herrenschmidt:

  "So I think at this point, the best is that we keep the old bogus code
   that at least is consistent with the bug in the server. I'm working on a
   big patch to X that reworks the memory map stuff completely and fixes
   those issues on the server side, I'll do a DRM patch matching this X fix
   as well so that the memory map is only ever set in one place and with
   what I hope is a correct algorithm..."

Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agoMerge master.kernel.org:/home/rmk/linux-2.6-mmc
Linus Torvalds [Thu, 29 Dec 2005 18:27:28 +0000]
Merge master.kernel.org:/home/rmk/linux-2.6-mmc

13 years agoMerge master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Thu, 29 Dec 2005 18:27:07 +0000]
Merge master.kernel.org:/home/rmk/linux-2.6-serial

13 years ago[PATCH] Fix recursive config dependency for SAA7134
Jean Delvare [Wed, 28 Dec 2005 20:02:57 +0000]
[PATCH] Fix recursive config dependency for SAA7134

Fix the cyclic dependency issue between CONFIG_SAA7134_ALSA and
CONFIG_SAA7134_OSS (credits to Mauro Carvalho Chehab.)

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] ppc64: htab_initialize_secondary cannot be marked __init
Anton Blanchard [Wed, 28 Dec 2005 23:46:29 +0000]
[PATCH] ppc64: htab_initialize_secondary cannot be marked __init

Sonny has noticed hotplug CPU on ppc64 is broken in 2.6.15-*. One of the
problems is that htab_initialize_secondary is called when a cpu is being
brought up, but it is marked __init.

Signed-off-by: Anton Blanchard <anton@samba.org>
Acked-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] x86_64: Fix incorrect node_present_pages on NUMA
Ravikiran G Thirumalai [Thu, 29 Dec 2005 12:06:11 +0000]
[PATCH] x86_64: Fix incorrect node_present_pages on NUMA

Currently, we do not pass the correct start_pfn to e820_hole_size, to
calculate holes.  Following patch fixes that.

The bug results in incorrect number of node_present_pages for each pgdat
and causes ugly output in /sys and probably VM inbalances.

Signed-off-by: Alok N Kataria <alokk@calsoftinc.com>
Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Sighed-off-by: Shair Fultheim <shai@scalex86.org>
Sighed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] Input: aiptek - fix Y axis setup
Riccardo Magliocchetti [Thu, 29 Dec 2005 01:44:48 +0000]
[PATCH] Input: aiptek - fix Y axis setup

This patch fixes a typo introduced by conversion to dynamic input_dev
allocation.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] fix ia64 compile failure with gcc4.1
Dave Jones [Thu, 29 Dec 2005 01:01:04 +0000]
[PATCH] fix ia64 compile failure with gcc4.1

__get_unaligned creates a typeof the var its passed, and writes to it,
which on gcc4.1, spits out the following error:

drivers/char/vc_screen.c: In function 'vcs_write':
drivers/char/vc_screen.c:422: error: assignment of read-only variable 'val'

Signed-off-by: Dave Jones <davej@redhat.com>
[ The "right" fix would be to try to fix <asm-generic/unaligned.h>
  but that's hard to do with the tools gcc gives us. So this
  simpler patch is preferable -- Linus ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] uml: fix compilation with CONFIG_MODE_TT disabled
Paolo 'Blaisorblade' Giarrusso [Thu, 29 Dec 2005 16:40:02 +0000]
[PATCH] uml: fix compilation with CONFIG_MODE_TT disabled

Fix UML compilation when SKAS mode is disabled. Indeed, we were compiling
SKAS-only object files, which failed due to some SKAS-only headers being
excluded from the search path.

Thanks to the bug report from Pekka J Enberg.

Acked-by: Pekka J Enberg <penberg (at) cs ! helsinki ! fi>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] Hostfs: update for new glibc - add missing symbol exports
Paolo 'Blaisorblade' Giarrusso [Thu, 29 Dec 2005 16:39:59 +0000]
[PATCH] Hostfs: update for new glibc - add missing symbol exports

Today, when compiling UML, I got warnings for two used unexported symbols:
readdir64 and truncate64. Indeed, my glibc headers are aliasing readdir to
readdir64 and truncate to truncate64 (and so on).

I'm then adding additional exports. Since I've no idea if the symbols where
always provided in the supported glibc's, I've added weak definitions too.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] uml: hostfs - fix possible PAGE_CACHE_SHIFT overflows
Paolo 'Blaisorblade' Giarrusso [Thu, 29 Dec 2005 16:39:57 +0000]
[PATCH] uml: hostfs - fix possible PAGE_CACHE_SHIFT overflows

Prevent page->index << PAGE_CACHE_SHIFT from overflowing.

There is a casting there, but was added without care, so it's at the wrong
place. Note the extra parens around the shift - "+" is higher precedence than
"<<", leading to a GCC warning which saved all us.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] Hostfs: remove unused var
Paolo 'Blaisorblade' Giarrusso [Thu, 29 Dec 2005 16:39:54 +0000]
[PATCH] Hostfs: remove unused var

Trivial removal of unused variable from this file - doesn't even change the
generated assembly code, in fact (gcc should trigger a warning for unused value
here).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] uml: fix random segfaults at bootup
Paolo 'Blaisorblade' Giarrusso [Thu, 29 Dec 2005 16:39:51 +0000]
[PATCH] uml: fix random segfaults at bootup

Don't use printk() where "current_thread_info()" is crap.

Until when we switch to running on init_stack, current_thread_info() evaluates
to crap. Printk uses "current" at times (in detail, &current is evaluated with
CONFIG_DEBUG_SPINLOCK to check the spinlock owner task).

And this leads to random segmentation faults.

Exactly, what happens is that &current = *(current_thread_info()), i.e. round
down $esp and dereference the value. I.e. access the stack below $esp, which
causes SIGSEGV on a VM_GROWSDOWN vma (see arch/i386/mm/fault.c).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/tg3-2.6
Linus Torvalds [Wed, 28 Dec 2005 21:45:19 +0000]
Merge /pub/scm/linux/kernel/git/davem/tg3-2.6

13 years ago[SERMOUSE]: Sun mice speak 5-byte protocol too.
David S. Miller [Wed, 28 Dec 2005 21:27:04 +0000]
[SERMOUSE]: Sun mice speak 5-byte protocol too.

Noticed by Christophe Zimmerman, this explains the slow mouse movement
with 2.6.x kernels.

And checking the 2.4.x drivers/sbus/char/sunmouse.c driver shows we
always used a 5-byte protocol with Sun mice in the past.  I have no
idea how the 3-byte thing got into the 2.6.x driver, but it's surely
wrong.

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[SPARC]: Use STABS_DEBUG and DWARF_DEBUG macros in vmlinux.lds.S
David S. Miller [Wed, 28 Dec 2005 21:22:54 +0000]
[SPARC]: Use STABS_DEBUG and DWARF_DEBUG macros in vmlinux.lds.S

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[TG3]: Update driver version and reldate.
David S. Miller [Wed, 28 Dec 2005 21:05:41 +0000]
[TG3]: Update driver version and reldate.

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[TG3]: ethtool -d hangs PCIe systems
Chris Elmquist [Tue, 20 Dec 2005 21:25:19 +0000]
[TG3]: ethtool -d hangs PCIe systems

Resubmitting after recommendation to use GET_REG32_1() instead of
GET_REG32_LOOP(..., 1).  Retested.  Problem remains fixed.

Prevent tg3_get_regs() from reading reserved and undocumented registers
at RX_CPU_BASE and TX_CPU_BASE offsets which caused hostile behavior
on PCIe platforms.

Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[PATCH] Fix more radeon GART start calculation cases
Benjamin Herrenschmidt [Tue, 27 Dec 2005 01:49:33 +0000]
[PATCH] Fix more radeon GART start calculation cases

As reported by Jules Villard <jvillard@ens-lyon.fr> and some others, the
recent GART aperture start reconfiguration causes problems on some
setups.

What I _think_ might be happening is that the X server is also trying to
muck around with the card memory map and is forcing it back into a wrong
setting that also happens to no longer match what the DRM wants to do
and blows up.  There are bugs all over the place in that code (and still
some bugs in the DRM as well anyway).

This patch attempts to avoid that by using the largest of the 2 values,
which I think will cause it to behave as it used to for you and will
still fix the problem with machines that have an aperture size smaller
than the video memory.

Acked-by: Jules Villard <jvillard@ens-lyon.fr>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[IPV6] mcast: Fix multiple issues in MLDv2 reports.
David L Stevens [Tue, 27 Dec 2005 22:03:00 +0000]
[IPV6] mcast: Fix multiple issues in MLDv2 reports.

The below "jumbo" patch fixes the following problems in MLDv2.

1) Add necessary "ntohs" to recent "pskb_may_pull" check [breaks
        all nonzero source queries on little-endian (!)]

2) Add locking to source filter list [resend of prior patch]

3) fix "mld_marksources()" to
        a) send nothing when all queried sources are excluded
        b) send full exclude report when source queried sources are
                not excluded
        c) don't schedule a timer when there's nothing to report

NOTE: RFC 3810 specifies the source list should be saved and each
  source reported individually as an IS_IN. This is an obvious DOS
  path, requiring the host to store and then multicast as many sources
  as are queried (e.g., millions...). This alternative sends a full,
  relevant report that's limited to number of sources present on the
  machine.

4) fix "add_grec()" to send empty-source records when it should
        The original check doesn't account for a non-empty source
        list with all sources inactive; the new code keeps that
        short-circuit case, and also generates the group header
        with an empty list if needed.

5) fix mca_crcount decrement to be after add_grec(), which needs
        its original value

These issues (other than item #1 ;-) ) were all found by Yan Zheng,
much thanks!

Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[NET]: Validate socket filters against BPF_MAXINSNS in one spot.
David S. Miller [Tue, 27 Dec 2005 21:57:59 +0000]
[NET]: Validate socket filters against BPF_MAXINSNS in one spot.

Currently the checks are scattered all over and this leads
to inconsistencies and even cases where the check is not made.

Based upon a patch from Kris Katterjohn.

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[IPV6]: Fix addrconf dead lock.
YOSHIFUJI Hideaki [Tue, 27 Dec 2005 21:35:15 +0000]
[IPV6]: Fix addrconf dead lock.

We need to release idev->lcok before we call addrconf_dad_stop().
It calls ipv6_addr_del(), which will hold idev->lock.

Bug spotted by Yasuyuki KOZAKAI <yasuyuki.kozakai@toshiba.co.jp>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[SERIAL] Fix AMBA PL011 sysrq character handling
Russell King [Tue, 27 Dec 2005 11:10:34 +0000]
[SERIAL] Fix AMBA PL011 sysrq character handling

We only want the received character without the status bits for
sysrq handling.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

13 years ago[BR_NETFILTER]: Fix leak if skb traverses > 1 bridge
David Kimdon [Tue, 27 Dec 2005 01:27:10 +0000]
[BR_NETFILTER]: Fix leak if skb traverses > 1 bridge

Call nf_bridge_put() before allocating a new nf_bridge structure and
potentially overwriting the pointer to a previously allocated one.
This fixes a memory leak which can occur when the bridge topology
allows for an skb to traverse more than one bridge.

Signed-off-by: David Kimdon <david.kimdon@devicescape.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[IPV6]: Increase default MLD_MAX_MSF to 64.
David L Stevens [Tue, 27 Dec 2005 01:03:46 +0000]
[IPV6]: Increase default MLD_MAX_MSF to 64.

The existing default of 10 is just way too low.

Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[PATCH] Fix Fibre Channel boot oops
James Bottomley [Mon, 26 Dec 2005 15:58:49 +0000]
[PATCH] Fix Fibre Channel boot oops

The oops is characteristic of the underlying device being removed from
visibility before the class device, and sure enough we do device_del()
before transport_unregister() in the scsi_target_reap() routines.  I've
no idea why this is suddenly showing up, since the code has been in
there since that function was first invented.  However, I've confirmed
this fixes Andrew Vasquez's boot oops.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agoLinux v2.6.15-rc7
Linus Torvalds [Sat, 24 Dec 2005 23:47:48 +0000]
Linux v2.6.15-rc7

Ho ho ho.

13 years ago[PATCH] n_r3964: fixed usage of HZ; removed bad include
Kurt Huwig [Sat, 24 Dec 2005 23:13:08 +0000]
[PATCH] n_r3964: fixed usage of HZ; removed bad include

Fix n_r3964 timeouts (hardcoded for 100Hz)

Also the include of <asm/termios.h> in 'n_r3964.h' is unnecessary and
prevents using the header file in any application that has to include
<termios.h> due to duplicate definition of 'struct termio'.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agoMerge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Sat, 24 Dec 2005 20:40:43 +0000]
Merge branch 'upstream-fixes' of /linux/kernel/git/jgarzik/libata-dev

13 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Sat, 24 Dec 2005 20:32:55 +0000]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

13 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sat, 24 Dec 2005 20:30:42 +0000]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

13 years ago[PATCH] Fix typo in x86_64 __build_write_lock_const assembly
Ben Collins [Fri, 23 Dec 2005 14:10:03 +0000]
[PATCH] Fix typo in x86_64 __build_write_lock_const assembly

Based on __build_read_lock_const, this looked like a bug.

[ Indeed. Maybe nobody uses this version? Worth fixing up anyway ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] x86_64/ia64 : Fix compilation error for node_to_first_cpu
Ravikiran G Thirumalai [Thu, 22 Dec 2005 22:21:34 +0000]
[PATCH] x86_64/ia64 : Fix compilation error for node_to_first_cpu

Fixes a compiler error in node_to_first_cpu, __ffs expects unsigned long as
a parameter; instead cpumask_t was being passed.  The macro
node_to_first_cpu was not yet used in x86_64 and ia64 arches, and so we never
hit this.  This patch replaces __ffs with first_cpu macro, similar to other
arches.

Signed-off-by: Alok N Kataria <alokk@calsoftinc.com>
Signed-off-by: Ravikiran G Thirumalai <kiran@scalex86.org>
Signed-off-by: Shai Fultheim <shai@scalex86.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agoFix silly typo ("smb" vs "smp")
Linus Torvalds [Sat, 24 Dec 2005 20:19:38 +0000]
Fix silly typo ("smb" vs "smp")

Introduced by commit 6003a93e7bf6c02f33c02976ff364785d4273295

13 years ago[PATCH] Fix memory ordering problem in wake_futex()
Andrew Morton [Sat, 24 Dec 2005 03:54:46 +0000]
[PATCH] Fix memory ordering problem in wake_futex()

Fix a memory ordering problem that occurs on IA64. The "store" to q->lock_ptr
in wake_futex() can become visible before wake_up_all() clears the lock in the
futex_q.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] add missing memory barriers to ipc/sem.c
Manfred Spraul [Fri, 23 Dec 2005 22:57:41 +0000]
[PATCH] add missing memory barriers to ipc/sem.c

Two smp_wmb() statements are missing in the sysv sem code: This could
cause stack corruptions.

The attached patch adds them.

Signed-Off-By: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[VIDEO] sbuslib: Disallow private mmaps.
David S. Miller [Sat, 24 Dec 2005 20:06:10 +0000]
[VIDEO] sbuslib: Disallow private mmaps.

The COW semantics just do not make any sense especially
with the physically discontiguous I/O mappings possible
here.

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years agoMerge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Sat, 24 Dec 2005 19:55:16 +0000]
Merge branch 'upstream-fixes' of /linux/kernel/git/jgarzik/netdev-2.6

13 years ago[PATCH] forcedeth: fix random memory scribbling bug
Manfred Spraul [Sat, 24 Dec 2005 13:19:24 +0000]
[PATCH] forcedeth: fix random memory scribbling bug

Two critical bugs were found in forcedeth 0.47:
 - TSO doesn't work.
 - pci_map_single() for the rx buffers is called with size==0.  This bug
   is critical, it causes random memory corruptions on systems with an
   iommu.

Below is a minimal fix for both bugs, for 2.6.15.

TSO will be fixed properly in the next version.  Tested on x86-64.

Signed-Off-By: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] s390: remove redundant and useless code in qeth
Frank Pavlic [Tue, 13 Dec 2005 07:23:26 +0000]
[PATCH] s390: remove redundant and useless code in qeth

[patch 3/3] s390: remove redundant and useless code in qeth

From: Frank Pavlic <pavlic@de.ibm.com>
- remove redundant and useless code in qeth for
  procfs operations.
- update Revision numbers
Signed-off-by: Frank Pavlic <pavlic@de.ibm.com>

diffstat:
 qeth_main.c |    6 -
 qeth_mpc.c  |    2
 qeth_mpc.h  |    2
 qeth_proc.c |  250 ++++++------------------------------------------------------
 qeth_sys.c  |    4
 qeth_tso.h  |    4
 6 files changed, 38 insertions(+), 230 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

13 years ago[PATCH] s390: minor qeth network driver fixes
Frank Pavlic [Tue, 13 Dec 2005 07:22:30 +0000]
[PATCH] s390: minor qeth network driver fixes

[patch 2/3] s390: minor qeth network driver fixes

From: Frank Pavlic <pavlic@de.ibm.com>
- use netif_carrier_on/off calls to tell network stack
  link carrier state
- fix possible kfree on NULL
- PDU_LEN2 is at offset 0x29 otherwise OSN chpid won't initialize

Signed-off-by: Frank Pavlic <pavlic@de.ibm.com>

diffstat:
 qeth_eddp.c |    3 ++-
 qeth_main.c |   17 +++++++----------
 qeth_mpc.h  |    2 +-
 3 files changed, 10 insertions(+), 12 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

13 years ago[PATCH] s390: some minor qeth driver fixes
Frank Pavlic [Tue, 13 Dec 2005 07:21:47 +0000]
[PATCH] s390: some minor qeth driver fixes

[patch 1/3] s390: some minor qeth driver fixes

From: Frank Pavlic <pavlic@de.ibm.com>
- let's have just one function for both ,input and output queue
  to check qdio errors
- add /proc/s390dbf/qeth_qerr entries for outbound processing
- check removed for layer2 device in qeth_add_multicast_ipv6
- NULL pointer dereference with bonding and VLAN device fixed
- minimum length check for portname fixed

Signed-off-by: Frank Pavlic <pavlic@de.ibm.com>

diffstat:
qeth_main.c |   42 +++++++++++++++++++++---------------------
qeth_sys.c  |    6 +++---
2 files changed, 24 insertions(+), 24 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

13 years ago[PATCH] missing license for libphy.ko
Olaf Hering [Tue, 13 Dec 2005 23:33:49 +0000]
[PATCH] missing license for libphy.ko

Andy,

libphy has no license tag. Something like the attached (untested!) patch
is needed. Hopefully such a change finds its way into 2.6.15.

filename: /lib/modules/2.6.15-rc5-3-ppc64/kernel/drivers/net/phy/libphy.ko
vermagic:       2.6.15-rc5-3-ppc64 SMP gcc-4.1
depends:
srcversion:     ACC921B5E82701BE1E6F603

 drivers/net/phy/phy_device.c |    4 ++++
 1 files changed, 4 insertions(+)

Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

13 years ago[PATCH] orinoco_nortel: Add Symbol LA-4123 ID
Pavel Roskin [Fri, 16 Dec 2005 23:57:10 +0000]
[PATCH] orinoco_nortel: Add Symbol LA-4123 ID

Add ID for Symbol LA-4123.  Reported by Tomas Novak <tap@post.cz>

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

13 years ago[PATCH] orinoco_nortel: Fix incorrect PCI resource use
Pavel Roskin [Fri, 16 Dec 2005 23:49:53 +0000]
[PATCH] orinoco_nortel: Fix incorrect PCI resource use

orinoco_nortel was broken during conversion to iomem API.  Wrong PCI BAR
is used for chipset registers.  Reported by Tomas Novak <tap@post.cz>

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

13 years ago[PATCH] fix libata inquiry VPD for ATAPI devices
Tony Battersby [Wed, 21 Dec 2005 21:35:44 +0000]
[PATCH] fix libata inquiry VPD for ATAPI devices

The following patch prevents libata from incorrectly modifying inquiry
VPD pages and command support data from ATAPI devices.  I have tested
the patch with a SATA ATAPI tape drive on an AHCI controller.

Patch is against kernel 2.4.32 with 2.4.32-libata1.patch applied.

Anthony J. Battersby
Cybernetics

Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

13 years ago[IPV6]: Fix Temporary Address Generation
Hiroyuki YAMAMORI [Fri, 23 Dec 2005 19:24:05 +0000]
[IPV6]: Fix Temporary Address Generation

From: Hiroyuki YAMAMORI <h-yamamo@db3.so-net.ne.jp>

Since regen_count is stored in the public address, we need to reset it
when we start renewing temporary address.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[IPV6]: Fix dead lock.
YOSHIFUJI Hideaki [Fri, 23 Dec 2005 19:23:21 +0000]
[IPV6]: Fix dead lock.

We need to relesae ifp->lock before we call addrconf_dad_stop(),
which will hold ifp->lock.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Fri, 23 Dec 2005 18:11:50 +0000]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

13 years ago[SPARC]: Kill CHILD_MAX.
David S. Miller [Fri, 23 Dec 2005 07:04:39 +0000]
[SPARC]: Kill CHILD_MAX.

It's definition is wrong (-1 means "no limit" not 999),
only the Sparc SunOS/Solaris compat code uses it, so
let's just kill it off completely from limits.h and
all referencing code.

Noticed by Ulrich Drepper.

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[SPARC]: introduce a SPARC Kconfig symbol
Adrian Bunk [Fri, 23 Dec 2005 05:03:47 +0000]
[SPARC]: introduce a SPARC Kconfig symbol

Introduce a Kconfig symbol SPARC that is defined on both the sparc and
sparc64 architectures.

This symbol makes some dependencies more readable.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[SUNGEM]: Fix link error with CONFIG_HOTPLUG disabled.
Adrian Bunk [Thu, 22 Dec 2005 02:50:12 +0000]
[SUNGEM]: Fix link error with CONFIG_HOTPLUG disabled.

gem_remove_one() is called from the __devinit gem_init_one().

Therefore, gem_remove_one() mustn't be __devexit.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years agoPull bug3410 into release branch
Len Brown [Fri, 23 Dec 2005 03:26:10 +0000]
Pull bug3410 into release branch

13 years agoPull owner_id into release branch
Len Brown [Fri, 23 Dec 2005 03:26:01 +0000]
Pull owner_id into release branch

13 years ago[ACPI] fix build warning from owner_id patch
Len Brown [Fri, 23 Dec 2005 03:23:06 +0000]
[ACPI] fix build warning from owner_id patch

Signed-off-by: Len Brown <len.brown@intel.com>

13 years agoAuto-update from upstream
Len Brown [Fri, 23 Dec 2005 03:01:55 +0000]
Auto-update from upstream

13 years ago[ACPI] fix passive cooling regression
Thomas Renninger [Wed, 21 Dec 2005 06:29:00 +0000]
[ACPI] fix passive cooling regression

Return logic was inverted.
Going for changing the return value to not return zero as it is makes
more sense regarding the naming of the function (cpu_has_cpufreq()).

http://bugzilla.kernel.org/show_bug.cgi?id=3410

Signed-off-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>

13 years ago[MMC] Set correct capacity for 1024-byte block cards
Russell King [Thu, 22 Dec 2005 23:21:38 +0000]
[MMC] Set correct capacity for 1024-byte block cards

We were passing set_capacity() the capacity we calculated in terms of
the number of blocks on the card, which happened to be the right units
for 512-byte block cards.  However, with 1024-byte block cards, we
end up setting the capacity to half the number of blocks.  Fix this
by shifting by the appropriate amount.

Thanks to Todd Blumer for pointing this out.

Use get_capacity() to report the card capacity, rather than
recalculating it from the CSD information.

Finally, use our chosen IO block size for the SET_BLOCKLEN command
rather than the CSD read block size.  Currently these are equivalent,
but will not be in the future.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

13 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 22 Dec 2005 17:41:03 +0000]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge
Linus Torvalds [Thu, 22 Dec 2005 17:34:05 +0000]
Merge git://git./linux/kernel/git/paulus/powerpc-merge

13 years agoMerge branch 'to_linus' of master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
Linus Torvalds [Thu, 22 Dec 2005 17:33:04 +0000]
Merge branch 'to_linus' of /linux/kernel/git/mchehab/v4l-dvb

13 years ago[PATCH] fix posix lock on NFS
ASANO Masahiro [Thu, 22 Dec 2005 04:24:54 +0000]
[PATCH] fix posix lock on NFS

NFS client prevents mandatory lock, but there is a flaw on it; Locks are
possibly left if the mode is changed while locking.

This permits unlocking even if the mandatory lock bits are set.

Signed-off-by: ASANO Masahiro <masano@tnes.nec.co.jp>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years ago[PATCH] fix race with preempt_enable()
Nicolas Pitre [Wed, 21 Dec 2005 17:26:25 +0000]
[PATCH] fix race with preempt_enable()

Currently a simple

void foo(void) { preempt_enable(); }

produces the following code on ARM:

foo:
bic r3, sp, #8128
bic r3, r3, #63
ldr r2, [r3, #4]
ldr r1, [r3, #0]
sub r2, r2, #1
tst r1, #4
str r2, [r3, #4]
blne preempt_schedule
mov pc, lr

The problem is that the TIF_NEED_RESCHED flag is loaded _before_ the
preemption count is stored back, hence any interrupt coming within that
3 instruction window causing TIF_NEED_RESCHED to be set won't be
seen and scheduling won't happen as it should.

Nothing currently prevents gcc from performing that reordering.  There
is already a barrier() before the decrement of the preemption count, but
another one is needed between this and the TIF_NEED_RESCHED flag test
for proper code ordering.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Acked-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

13 years agoMerge git://git.skbuff.net/gitroot/yoshfuji/linux-2.6.14+git+ipv6-fix-20051221a
David S. Miller [Thu, 22 Dec 2005 15:41:27 +0000]
Merge git://git.skbuff.net/gitroot/yoshfuji/linux-2.6.14+git+ipv6-fix-20051221a