Dave Jones [Fri, 4 Jun 2004 00:46:25 +0000 (01:46 +0100)]
[CPUFREQ] Remove bogus longhaul v4
The code only supports 3 versions, so numbering them 1,2 and 4
doesn't make a lot of sense. Signed-off-by: Dave Jones <davej@redhat.com>
Dave Jones [Fri, 4 Jun 2004 00:44:00 +0000 (01:44 +0100)]
[CPUFREQ] Move longhaul multiplier debug printk to somewhere more useful.
If we abort due to a reserved FSB being found, we probably want to know the multipliers.
Dave Jones [Fri, 4 Jun 2004 00:29:42 +0000 (01:29 +0100)]
[CPUFREQ] Remove lots of redundant code from longhaul driver.
The recent Nehemiah changes introduced lots of stuff that does
a whole lot of nothing. Nuke it.
Alexander Viro [Thu, 3 Jun 2004 11:19:22 +0000 (04:19 -0700)]
[PATCH] sparse: wavefront annotation
Both ALSA and OSS drivers + wavefront ioctl structure annotated. NB:
both should be switched to generic firmware loading - as it is, they are
using a homegrown and rather ugly variant
Alexander Viro [Thu, 3 Jun 2004 11:18:29 +0000 (04:18 -0700)]
[PATCH] sparse: sound/core/pcm* annotation
The tricky part here was an iterator that used to take a callback and
argument for that callback as parameters. Iterator itself didn't care
what type that argument had been; it's entirely up to callback. The
thing is, two callbacks expect (and get) char __user * while other two
expect (and also get) char __user **.
Iterator used to use void * as "opaque data"; I've switched it to
unsigned long. Note that there was nothing that said "it's a pointer" -
use of callback that would take e.g. int is also perfectly legitimate.
Alexander Viro [Thu, 3 Jun 2004 09:47:28 +0000 (02:47 -0700)]
[PATCH] sparse: msnd sound fix
msnd_pinnacle/msnd_classic do copy_{to,from}_user under a spinlock.
Taken out of spinlock (into a temp. buffer). Calls of msnd_fifo_{read,write}
always go from kernel buffer now, so we can drop the 'int user' argument in
them _and_ simplify error handling - all errors were from copy_..._user() and
now these are called directly by dsp_read()/dsp_write().
Alexander Viro [Thu, 3 Jun 2004 09:47:17 +0000 (02:47 -0700)]
[PATCH] sparse: sound sb fix
In some cases snd_sb_csp_load() did kmalloc() and copy_from_user()
under a spinlock. Split into snd_sb_csp_load() and snd_sb_csp_load_user() -
ther former always from kernel pointer, the latter - from userland.
snd_sb_csp_load_user() doesn't take any locks itself, it just
does kmalloc, copy_from_user and calls snd_sb_csp_load() to do the rest.
Russell King [Thu, 3 Jun 2004 18:01:25 +0000 (19:01 +0100)]
[ARM] Don't include lubbock.h in asm/arch/hardware.h
Since asm/arch/hardware.h is included (indirectly) by most kernel
files, we don't want all these files depending on the individual
machine support files, especially as only five files really require
the header.
Instead, explicitly include lubbock.h into files as necessary.
Paul Mackerras [Thu, 3 Jun 2004 08:06:05 +0000 (01:06 -0700)]
[PATCH] ppc32: Fix locks.c properly this time
When I moved the exports into arch/ppc/lib/locks.c, I forgot to
include module.h, so it doesn't compile (with CONFIG_SMP +
CONFIG_SPINLOCK_DEBUG). This patch fixes it.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Thu, 3 Jun 2004 01:22:18 +0000 (18:22 -0700)]
[PATCH] ppc32: Reduce WARN_ON(0) to nothing
The last patch I sent means that we have WARN_ON(0) in a couple of
places when CONFIG_PREEMPT=n. This patch makes that reduce to
nothing (rather than a conditional trap on a 0 value), and also makes
BUG_ON(0) reduce to nothing for completeness.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Thu, 3 Jun 2004 01:22:08 +0000 (18:22 -0700)]
[PATCH] ppc32: Fix preemptible check
Ben H added a check in a couple of places to make sure that we had
preemption disabled when we call enable_kernel_{fp,altivec}.
Unfortunately the check he used trips in the case when
CONFIG_PREEMPT=n. This patch fixes it by defining a preemptible()
macro (which reduces to 0 when CONFIG_PREEMPT=n) and doing
WARN_ON(preemptible()).
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Thu, 3 Jun 2004 01:21:57 +0000 (18:21 -0700)]
[PATCH] ppc32: Make ppc32 PCI code more robust
The main thrust of this patch is to make the ppc32 PCI code more
robust by checking for bus->resource[] being NULL before using it. We
can legitimately get elements of bus->resource being NULL and I have
actually hit that on some machines. This patch also allows resources
starting at 0 to be accepted as assigned (we can and do get PCI
resources starting at 0 in I/O space on PPC machines) and provides a
sensible default for the case where Open Firmware doesn't give us a
bus-range property for a PCI bridge.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Thu, 3 Jun 2004 01:21:47 +0000 (18:21 -0700)]
[PATCH] ppc32: Use -fPIC instead of -mrelocatable-lib
The ppc32 boot code has a couple of files that are executed very early
on before the kernel is mapped at the address it is linked at. We
have been using -mrelocatable-lib to compile these files, but
apparently -mrelocatable-lib is deprecated and the gcc developers are
threatening to remove it. In fact the -fPIC flag does what we need.
This patch changes -mrelocatable-lib to -fPIC.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Thu, 3 Jun 2004 01:21:36 +0000 (18:21 -0700)]
[PATCH] ppc32: Suppress bogus info in /proc/ppc_htab on 64-bit cpus
In the ppc32 kernel, we have a /proc/ppc_htab file that trawls through
the MMU hash table and prints various statistics on it such as percent
occupancy. However, the hash table entry format is different on
64-bit cpus (POWER3, G5) which the ppc32 kernel does support (in
32-bit mode).
This patch disables the scanning of the MMU hash table and printing of
the statistics that we get from it on 64-bit cpus. Since the
statistics are only for interest, and the ppc32 kernel is being used
less and less on 64-bit cpus now that the ppc64 kernel is in
reasonable shape, I didn't think it worth while to add code to deal
with the 64-bit HPTE format.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Thu, 3 Jun 2004 01:21:26 +0000 (18:21 -0700)]
[PATCH] ppc32: Don't synchronize in disable_irq() if no handler
This patch is the ppc32 counterpart to a fix that went into
arch/i386/kernel/irq.c last October. The bug was noted by Al Viro: if
no handler exists, and we have IRQ_INPROGRESS set because of an
earlier irq that got through, synchronize_irq() will end up waiting
forever.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Thu, 3 Jun 2004 01:21:15 +0000 (18:21 -0700)]
[PATCH] ppc32: Add _raw_write_trylock
I tried compiling a PPC32 kernel with PREEMPT + SMP and it failed
because we didn't have a _raw_write_trylock. This patch adds
_raw_write_trylock, moves the exports of _raw_*lock from
arch/ppc/kernel/ppc_ksyms.c to arch/ppc/lib/locks.c, and makes
__spin_trylock static since it is only used in locks.c.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Thu, 3 Jun 2004 01:05:20 +0000 (18:05 -0700)]
[PATCH] direct-io invalidation fix
clean_blockdev_aliases() is using the wrong thing to work out how many
filesystem blocks should be invalidated. It invalidates too many, which can
cause live fs metadata buffers to be invalidated when they are pending
writeout. It's a filesystem-wrecker, although seems very hard to hit.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Thu, 3 Jun 2004 01:05:09 +0000 (18:05 -0700)]
[PATCH] bug in sys_io_setup
From: Jerzy Szczepkowski <js189202@zodiac.mimuw.edu.pl>
There is a bug in sys_io_setup().
If ioctx_alloc() succeeds and put_user() fails io_destroy() is called.
io_destroy() assumes that ioctx->users >= 2 (if context is alive) and calls
put_ioctx twice, while in this sequence ioctx->users == 1.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Thu, 3 Jun 2004 01:04:58 +0000 (18:04 -0700)]
[PATCH] Use decimal instead of hex for EDD values
From: "Patrick J. LoPresti" <patl@users.sourceforge.net>
This patch changes default_cylinders, default_heads,
default_sectors_per_track, legacy_max_cylinder, legacy_max_head,
legacy_sectors_per_track, and sectors to decimal.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Thu, 3 Jun 2004 01:04:36 +0000 (18:04 -0700)]
[PATCH] use c99 struct initializer in hotcpu_notifier
From: Nathan Lynch <nathanl@austin.ibm.com>
The hotcpu_notifier macro does not properly record the given priority in
the notifier block. This causes trouble only for callers which specify a
non-zero priority, of which there are none (yet).
Andrew Morton [Thu, 3 Jun 2004 01:04:25 +0000 (18:04 -0700)]
[PATCH] ext3_orphan_del may double-decrement bh->b_count
From: Jeff Mahoney <jeffm@suse.com>
Chris Mason and I ran across this one while hunting down another bug.
If ext3_mark_iloc_dirty() fails in ext3_orphan_del() on the outer buffer,
bh->b_count will be decremented twice. ext3_mark_iloc_dirty() will brelse
the buffer, even on error. ext3_orphan_del() is explicity brelse'ing the
buffer on error. Prior to calling ext3_mark_iloc_dirty(), this is the
correct behavior.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>