GitHub/exynos8895/android_kernel_samsung_universal8895.git
19 years ago[PATCH] largefile support for accounting
Peter Staubach [Tue, 6 Sep 2005 22:17:35 +0000 (15:17 -0700)]
[PATCH] largefile support for accounting

There is a problem in the accounting subsystem in the kernel can not
correctly handle files larger than 2GB.  The output file containing the
process accounting data can grow very large if the system is large enough
and active enough.  If the 2GB limit is reached, then the system simply
stops storing process accounting data.

Another annoying problem is that once the system reaches this 2GB limit,
then every process which exits will receive a signal, SIGXFSZ.  This signal
is generated because an attempt was made to write beyond the limit for the
file descriptor.  This signal makes it look like every process has exited
due to a signal, when in fact, they have not.

The solution is to add the O_LARGEFILE flag to the list of flags used to
open the accounting file.  The rest of the accounting support is already
largefile safe.

The changes were tested by constructing a large file (just short of 2GB),
enabling accounting, and then running enough commands to cause the
accounting data generated to increase the size of the file to 2GB.  Without
the changes, the file grows to 2GB and the last command run in the test
script appears to exit due a signal when it has not.  With the changes,
things work as expected and quietly.

There are some user level changes required so that it can deal with
largefiles, but those are being handled separately.

Signed-off-by: Peter Staubach <staubach@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] arm26: one -g is enough for everyone
Adrian Bunk [Tue, 6 Sep 2005 22:17:34 +0000 (15:17 -0700)]
[PATCH] arm26: one -g is enough for everyone

The main Makefile is already adding -g to the CFLAGS if
CONFIG_DEBUG_INFO=y.

Not that two -g would do harm, but one works as well.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Ian Molton <spyro@f2s.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] do_notify_parent_cldstop() cleanup
Oleg Nesterov [Tue, 6 Sep 2005 22:17:32 +0000 (15:17 -0700)]
[PATCH] do_notify_parent_cldstop() cleanup

This patch simplifies the usage of do_notify_parent_cldstop(), it lessens
the source and .text size slightly, and makes the code (in my opinion) a
bit more readable.

I am sending this patch now because I'm afraid Paul will touch
do_notify_parent_cldstop() really soon, It's better to cleanup first.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Console blanking locking fix
Stephane Doyon [Tue, 6 Sep 2005 22:17:31 +0000 (15:17 -0700)]
[PATCH] Console blanking locking fix

I've had WARN_CONSOLE_UNLOCKED warnings when calling TIOCLINUX
TIOCL_BLANKSCREEN and TIOCL_UNBLANKSCREEN.

(I'm blind and I use a braille display.  I use those functions to blank my
laptop's screen so people don't read it, and hopefully to conserve power.)

The warnings are from these places:
do_blank_screen at drivers/char/vt.c:2754 (Not tainted)
save_screen at drivers/char/vt.c:575 (Not tainted)
do_unblank_screen at drivers/char/vt.c:2822 (Not tainted)
set_palette at drivers/char/vt.c:2908 (Not tainted)

At a glance I would think the following patch ought to fix that.  Tested on
one machine.  Could you please tell me if this is correct and/or forward
the patch where appropriate...

Signed-off-by: Stephane Doyon <s.doyon@videotron.ca>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Add missing overflow check in get_blkdev_list
Neil Horman [Tue, 6 Sep 2005 22:17:30 +0000 (15:17 -0700)]
[PATCH] Add missing overflow check in get_blkdev_list

Patch to clean up missing overflow check in get_blkdev_list.  The printf
which adds the "Block Devices" string in /proc/devices can overflow the
presented page if get_chrdev_list eats up the entire 4k space.

Signed-off-by: Neil Horman <nhorman@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Delete unused do_nanosleep declaration
Ralf Baechle [Tue, 6 Sep 2005 22:17:29 +0000 (15:17 -0700)]
[PATCH] Delete unused do_nanosleep declaration

There is no do_nanosleep function so kill it's declaration in <linux/time.h>.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] 3c59x: read current link status from phy
Tommy S. Christensen [Tue, 6 Sep 2005 22:17:28 +0000 (15:17 -0700)]
[PATCH] 3c59x: read current link status from phy

The phy status register must be read twice in order to get the actual link
state.

Signed-off-by: Tommy S. Christensen <tommy.christensen@tpack.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] remove asm-*/hdreg.h
Christoph Hellwig [Tue, 6 Sep 2005 22:17:27 +0000 (15:17 -0700)]
[PATCH] remove asm-*/hdreg.h

unused and useless..

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix function/macro name collision on i386 oprofile
David Gibson [Tue, 6 Sep 2005 22:17:26 +0000 (15:17 -0700)]
[PATCH] Fix function/macro name collision on i386 oprofile

The i386 OProfile code has a function named nmi_exit(), which collides with
the nmi_exit() macro in linux/hardirq.h.  At the moment, we get away with
it, because hardirq.h isn't included in the oprofile code.  I hit this as a
bug when working with a patch which (indirectly) adds a #include of
hardirq.h to oprofile.

Regardless, the name collision is probably not a good idea, so this patch
fixes it, renaming the oprofile function to op_nmi_exit().  It also renames
the nmi_init() and nmi_timer_init() functions similarly, for consistency.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] CHECK_IRQ_PER_CPU() to avoid dead code in __do_IRQ()
Karsten Wiese [Tue, 6 Sep 2005 22:17:25 +0000 (15:17 -0700)]
[PATCH] CHECK_IRQ_PER_CPU() to avoid dead code in __do_IRQ()

IRQ_PER_CPU is not used by all architectures.  This patch introduces the
macros ARCH_HAS_IRQ_PER_CPU and CHECK_IRQ_PER_CPU() to avoid the generation
of dead code in __do_IRQ().

ARCH_HAS_IRQ_PER_CPU is defined by architectures using IRQ_PER_CPU in their
include/asm_ARCH/irq.h file.

Through grepping the tree I found the following architectures currently use
IRQ_PER_CPU:

        cris, ia64, ppc, ppc64 and parisc.

Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Make the bzImage format self-terminating
H. Peter Anvin [Tue, 6 Sep 2005 22:17:24 +0000 (15:17 -0700)]
[PATCH] Make the bzImage format self-terminating

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: Frank Sorenson <frank@tuxrocks.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] jffs/jffs2: remove wrong function prototypes
Adrian Bunk [Tue, 6 Sep 2005 22:17:23 +0000 (15:17 -0700)]
[PATCH] jffs/jffs2: remove wrong function prototypes

This patch removes prototypes for the generic_file_open and
generic_file_llseek functions.

Besides being superfluous because they are already present in fs.h, they
were also wrong because the actual functions aren't weak functions.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fs/Kconfig: quota help text updates
Adrian Bunk [Tue, 6 Sep 2005 22:17:22 +0000 (15:17 -0700)]
[PATCH] fs/Kconfig: quota help text updates

This patch contains the following updates to the help texts:
- QUOTA: most people will get the quota utilities from their
         distribution, and if not the mini-HOWTO will tell them
- QFMT_V2: quota utilities 3.01 are no longer recent, they are now
           ancient
           and 3.01 is lower than the minimal version documented in
           Documentation/Changes

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] parport: add NetMOS 9805 support
Maximilian Attems [Tue, 6 Sep 2005 22:17:21 +0000 (15:17 -0700)]
[PATCH] parport: add NetMOS 9805 support

This interface is said to be commonly used in germany: "The patch has been
proven to work fine in a beige G3 Mac."
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=262324

Signed-off-by: maximilian attems <janitor@sternwelten.at>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] cleanup of deadline_dispatch_requests()
Nikita Danilov [Tue, 6 Sep 2005 22:17:20 +0000 (15:17 -0700)]
[PATCH] cleanup of deadline_dispatch_requests()

cleanup of deadline_dispatch_requests():

- replace drq selection with hopefully clearer while semantically the
  same construct: take write request, if there is any, otherwise take read
  one, or NULL if none exist.

- kill unused other_dir.

Signed-off-by: Nikita Danilov <nikita@clusterfs.com>
Cc: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Add rdinit parameter to pick early userspace init
Olof Johansson [Tue, 6 Sep 2005 22:17:19 +0000 (15:17 -0700)]
[PATCH] Add rdinit parameter to pick early userspace init

Since early userspace was added, there's no way to override which init to
run from it.  Some people tack on an extra cpio archive with a link from
/init depending on what they want to run, but that's sometimes impractical.

Changing the "init=" to also override the early userspace isn't feasible,
since it is still used to indicate what init to run from disk when early
userspace has completed doing whatever it's doing (i.e.  load filesystem
modules and drivers).

Instead, introduce "rdinit=" and make it override the default "/init" if
specified.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] proc: link count fix
Miklos Szeredi [Tue, 6 Sep 2005 22:17:18 +0000 (15:17 -0700)]
[PATCH] proc: link count fix

This patch fixes bug titled "sunrpc as module and bad proc/sys link count"
reported by Jiri Slaby.

The problem was, that only proc_dir_entry->nlink was updated and the
corresponding inode->i_nlink was not.  The fix is to implement the
inode->getattr() method, and update i_nlink (if necessary).

A quick audit of proc code shows that no other attribute changes after
creation.

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] create_workqueue_thread() signedness fix
Mika Kukkonen [Tue, 6 Sep 2005 22:17:17 +0000 (15:17 -0700)]
[PATCH] create_workqueue_thread() signedness fix

With "-W -Wno-unused -Wno-sign-compare" I get the following compile warning:

  CC      kernel/workqueue.o
kernel/workqueue.c: In function `workqueue_cpu_callback':
kernel/workqueue.c:504: warning: ordered comparison of pointer with integer zero

On error create_workqueue_thread() returns NULL, not negative pointer, so
following trivial patch suggests itself.

Signed-off-by: Mika Kukkonen <mikukkon@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fsnotify: hook on removexattr, too
Robert Love [Tue, 6 Sep 2005 22:17:16 +0000 (15:17 -0700)]
[PATCH] fsnotify: hook on removexattr, too

Add fsnotify_xattr() hook to removexattr().

Signed-off-by: Robert Love <rml@novell.com>
Signed-off-by: John McCtuchan <ttb@tentacle.dhs.org>
Cc: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] dcdbas: add Dell Systems Management Base Driver with sysfs support
Doug Warzecha [Tue, 6 Sep 2005 22:17:15 +0000 (15:17 -0700)]
[PATCH] dcdbas: add Dell Systems Management Base Driver with sysfs support

This patch adds the Dell Systems Management Base Driver with sysfs support.

This driver has been tested with Dell OpenManage.

Signed-off-by: Doug Warzecha <Douglas_Warzecha@dell.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] dell_rbu: new Dell BIOS update driver
Abhay Salunke [Tue, 6 Sep 2005 22:17:14 +0000 (15:17 -0700)]
[PATCH] dell_rbu: new Dell BIOS update driver

Remote BIOS Update driver for updating BIOS images on Dell servers and
desktops.  See dell_rbu.txt for details.

Signed-off-by: Abhay Salunke <Abhay_Salunke@dell.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] modified firmware_class.c to support no hotplug
Abhay Salunke [Tue, 6 Sep 2005 22:17:13 +0000 (15:17 -0700)]
[PATCH] modified firmware_class.c to support no hotplug

Upgrade the request_firmware_nowait function to not start the hotplug
action on a firmware update.

This patch is tested along with dell_rbu driver on i386 and x86-64 systems.

Signed-off-by: Abhay Salunke <Abhay_Salunke@dell.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Speedup FAT filesystem directory reads
Karsten Wiese [Tue, 6 Sep 2005 22:17:12 +0000 (15:17 -0700)]
[PATCH] Speedup FAT filesystem directory reads

      OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

This speeds up directory reads for large FAT partitions, if the buffercache
has to be filled from the drive. Following values were taken from:

        $ time find path_to_freshly_mounted_fat > /dev/null

on an otherwise idle system.

FAT with 16KB Clusters on IDE attached drive:   Factor  2
FAT with 32KB Clusters on USB2 attached drive:  Factor 10 (!)
Its less than 1/10 slower, if the buffercache is uptodate.

The patch introduces the new function fat_dir_readahead().

fat_dir_readahead() calls sb_breadahead() to readahead a whole cluster,
if the requested sector is the first one in a cluster.
It is usefull to do this, because on FAT directories occupy whole
clusters, with the exception of FAT12/FAT16 root dirs.

Readahead is only done, if the cluster's first sector is not uptodate
to avoid overhead, when the buffer cache is already uptodate.
Note that under memory pressure, the maximal byte count wasted
(read: has to be red from disk twice) is 1 cluster's size.  Thats 64KB.

fat_dir_readahead() is called from fat__get_entry().

There is also an unrelated cleanup at one spot:

        if (bh)
                brelse(bh);

is replaced with:

        brelse(bh);

brelse() can handle NULL pointer arguments by itself.

Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de>
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] flush icache early when loading module
Thomas Koeller [Tue, 6 Sep 2005 22:17:11 +0000 (15:17 -0700)]
[PATCH] flush icache early when loading module

Change the sequence of operations performed during module loading to flush
the instruction cache before module parameters are processed.  If a module
has parameters of an unusual type that cannot be handled using the standard
accessor functions param_set_xxx and param_get_xxx, it has to to provide a
set of accessor functions for this type.  This requires module code to be
executed during parameter processing, which is of course only possible
after the icache has been flushed.

Signed-off-by: Thomas Koeller <thomas@koeller.dyndns.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ipc: convert /proc/sysvipc/* to generic seq_file interface
Mike Waychison [Tue, 6 Sep 2005 22:17:10 +0000 (15:17 -0700)]
[PATCH] ipc: convert /proc/sysvipc/* to generic seq_file interface

Change the /proc/sysvipc/shm|sem|msg files to use the generic seq_file
implementation for struct ipc_ids.

Signed-off-by: Mike Waychison <mikew@google.com>
Cc: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ipc: add generic struct ipc_ids seq_file iteration
Mike Waychison [Tue, 6 Sep 2005 22:17:09 +0000 (15:17 -0700)]
[PATCH] ipc: add generic struct ipc_ids seq_file iteration

The following two patches convert /proc/sysvipc/* to use seq_file.

This gives us the following:

 - Self-consistent IPC records in proc.
 - O(n) reading of the files themselves.

This patch:

Add a generic method for ipc types to be displayed using seq_file.  This
patch abstracts out seq_file iterating over struct ipc_ids into ipc/util.c

Signed-off-by: Mike Waychison <mikew@google.com>
Cc: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] sunrpc: cache_register can use wrong module reference
Bruce Allan [Tue, 6 Sep 2005 22:17:08 +0000 (15:17 -0700)]
[PATCH] sunrpc: cache_register can use wrong module reference

When registering an RPC cache, cache_register() always sets the owner as the
sunrpc module.  However, there are RPC caches owned by other modules.  With
the incorrect owner setting, the real owning module can be removed potentially
with an open reference to the cache from userspace.

For example, if one were to stop the nfs server and unmount the nfsd
filesystem, the nfsd module could be removed eventhough rpc.idmapd had
references to the idtoname and nametoid caches (i.e.
/proc/net/rpc/nfs4.<cachename>/channel is still open).  This resulted in a
system panic on one of our machines when attempting to restart the nfs
services after reloading the nfsd module.

The following patch adds a 'struct module *owner' field in struct
cache_detail.  The owner is further assigned to the struct proc_dir_entry
in cache_register() so that the module cannot be unloaded while user-space
daemons have an open reference on the associated file under /proc.

Signed-off-by: Bruce Allan <bwa@us.ibm.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] meye: use dma-mapping constants
Tobias Klauser [Tue, 6 Sep 2005 22:17:07 +0000 (15:17 -0700)]
[PATCH] meye: use dma-mapping constants

Use the DMA_32BIT_MASK constant from dma-mapping.h when calling
pci_set_dma_mask() or pci_set_consistent_dma_mask() This patch includes
dma-mapping.h explicitly because it caused errors on some architectures
otherwise.  See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for
details

Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
Signed-off-by: Stelian Pop <stelian@popies.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] readahead: reset cache_hit earlier
Steven Pratt [Tue, 6 Sep 2005 22:17:06 +0000 (15:17 -0700)]
[PATCH] readahead: reset cache_hit earlier

We don't reset the cache hit count until after readahead does a successful
readahead.  This seems to leave a corner case open where we miss in cache,
but don't restart the readhead right away.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] PNP: make pnp_dbg conditional directly on CONFIG_PNP_DEBUG
Bjorn Helgaas [Tue, 6 Sep 2005 22:17:05 +0000 (15:17 -0700)]
[PATCH] PNP: make pnp_dbg conditional directly on CONFIG_PNP_DEBUG

Seems pointless to require .c files to test CONFIG_PNP_DEBUG and
conditionally define DEBUG before including <linux/pnp.h>.  Just test
CONFIG_PNP_DEBUG directly in pnp.h.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Adam Belay <ambx1@neo.rr.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] optimize writer path in time_interpolator_get_counter()
Alex Williamson [Tue, 6 Sep 2005 22:17:04 +0000 (15:17 -0700)]
[PATCH] optimize writer path in time_interpolator_get_counter()

      Christoph Lameter <clameter@engr.sgi.com>

When using a time interpolator that is susceptible to jitter there's
potentially contention over a cmpxchg used to prevent time from going
backwards.  This is unnecessary when the caller holds the xtime write
seqlock as all readers will be blocked from returning until the write is
complete.  We can therefore allow writers to insert a new value and exit
rather than fight with CPUs who only hold a reader lock.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] sonypi: remove obsolete event
Stelian Pop [Tue, 6 Sep 2005 22:17:03 +0000 (15:17 -0700)]
[PATCH] sonypi: remove obsolete event

Remove old obsolete event.

Signed-off-by: Stelian Pop <stelian@popies.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] sonypi SPIC initialisation fix
Erik Waling [Tue, 6 Sep 2005 22:17:02 +0000 (15:17 -0700)]
[PATCH] sonypi SPIC initialisation fix

Newer Sony VAIO models (VGN-S480, VGN-S460, VGN-S3XP etc) use a new method to
initialize the SPIC device.  The new way to initialize (and disable) the
device comes directly from the AML code in the _CRS, _SRS and _DIS methods
from the DSDT table.  This patch adds support for the new models.

Signed-off-by: Erik Waling <erikw@acc.umu.se>
Signed-off-by: Stelian Pop <stelian@popies.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] remove pipe definitions
Zhigang Huo [Tue, 6 Sep 2005 22:17:00 +0000 (15:17 -0700)]
[PATCH] remove pipe definitions

These no longer have any users.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] move 68360serial.c over use initcalls
Christoph Hellwig [Tue, 6 Sep 2005 22:16:59 +0000 (15:16 -0700)]
[PATCH] move 68360serial.c over use initcalls

this is the last serial driver not using initcalls.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: <jeff@uclinux.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] move m68k rtc drivers over to initcalls
Christoph Hellwig [Tue, 6 Sep 2005 22:16:58 +0000 (15:16 -0700)]
[PATCH] move m68k rtc drivers over to initcalls

this gets rid of the last two explicit initializations in misc.c

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] remove misleading comment above sys_brk
Christoph Hellwig [Tue, 6 Sep 2005 22:16:57 +0000 (15:16 -0700)]
[PATCH] remove misleading comment above sys_brk

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] remove a dead extern in mem.c
Christoph Hellwig [Tue, 6 Sep 2005 22:16:56 +0000 (15:16 -0700)]
[PATCH] remove a dead extern in mem.c

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Add warning `init=' to init/main.c
Avery, Brian [Tue, 6 Sep 2005 22:16:56 +0000 (15:16 -0700)]
[PATCH] Add warning `init=' to init/main.c

I passed init=/mylinuxrc to the kernel on the command line.  The kernel
silently dropped down to exec /sbin/init.  It turned out that /mylinuxrc
had improper permissions.  Without any warning message from the kernel that
something was wrong it took awhile to find the issue.  The patch below adds
a warning.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts
Mark Bellon [Tue, 6 Sep 2005 22:16:54 +0000 (15:16 -0700)]
[PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts

If /etc/mtab is a regular file all of the mount options (of a file system)
are written to /etc/mtab by the mount command.  The quota tools look there
for the quota strings for their operation.  If, however, /etc/mtab is a
symlink to /proc/mounts (a "good thing" in some environments) the tools
don't write anything - they assume the kernel will take care of things.

While the quota options are sent down to the kernel via the mount system
call and the file system codes handle them properly unfortunately there is
no code to echo the quota strings into /proc/mounts and the quota tools
fail in the symlink case.

The attached patchs modify the EXT[2|3] and JFS codes to add the necessary
hooks.  The show_options function of each file system in these patches
currently deal with only those things that seemed related to quotas;
especially in the EXT3 case more can be done (later?).

Jan Kara also noted the difficulty in moving these changes above the FS
codes responding similarly to myself to Andrew's comment about possible
VFS migration. Issue summary:

 - FS codes have to process the entire string of options anyway.

 - Only FS codes that use quotas must have a show_options function (for
   quotas to work properly) however quotas are only used in a small number
   of FS.

 - Since most of the quota using FS support other options these FS codes
   should have the a show_options function to show those options - and the
   quota echoing becomes virtually negligible.

Based on feedback I have modified my patches from the original:

   JFS a missing patch has been restored to the posting
   EXT[2|3] and JFS always use the show_options function
       - Each FS has at least one FS specific option displayed
       - QUOTA output is under a CONFIG_QUOTA ifdef
       - a follow-on patch will add a multitude of options for each FS
   EXT[2|3] and JFS "quota" is treated as "usrquota"
   EXT3 journalled data check for journalled quota removed
   EXT[2|3] mount when quota specified but not compiled in

 - no changes from my original patch.  I tested the patch and the codes
   warn but

 - still mount.  With all due respection I believe the comments
   otherwise were a

 - misread of the patch.  Please reread/test and comment.  XFS patch
   removed - the XFS team already made the necessary changes EXT3 mixing
   old and new quotas are handled differently (not purely exclusive)

 - if old and new quotas for the same type are used together the old
   type is silently depricated for compatability (e.g.  usrquota and
   usrjquota)

 - mixing of old and new quotas is an error (e.g.  usrjquota and
   grpquota)

Signed-off-by: Mark Bellon <mbellon@mvista.com>
Acked-by: Dave Kleikamp <shaggy@austin.ibm.com>
Cc: Jan Kara <jack@ucw.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix sound/arm/Makefile for locality of reference
Russell King [Tue, 6 Sep 2005 22:16:52 +0000 (15:16 -0700)]
[PATCH] Fix sound/arm/Makefile for locality of reference

Ensure that sound/arm/Makefile is sanely organised so that additions to it
don't break all other patches out there.  This means I only have to adjust
the line numbers in my patch queue rather than having to re-generate by
hand those which touch this file.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] pnp: consolidate kmalloc wrappers
Bjorn Helgaas [Tue, 6 Sep 2005 22:16:51 +0000 (15:16 -0700)]
[PATCH] pnp: consolidate kmalloc wrappers

ISAPNP, PNPBIOS, and PNPACPI all had their own kmalloc wrappers that
reimplemented kcalloc().  Remove the wrappers and just use kcalloc()
directly.

Note that this also removes the PNPBIOS error message when the kmalloc
fails.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] yenta: make ToPIC95 bridges work with 16bit cards
Daniel Ritz [Tue, 6 Sep 2005 22:16:50 +0000 (15:16 -0700)]
[PATCH] yenta: make ToPIC95 bridges work with 16bit cards

ToPIC95 brides (and maybe some other too) require to use the ExCA registers
to power up the socket if a 16bit card is pluged.  allow socket drivers to
set a flag so that yenta does just that.  also clean up yenta_get_status()
a bit to use the new yenta_get_power() function.

Side note: ToPIC97 bridges (at least in Rev.5 i have) don't require this.

Ryan Underwood <nemesis-lists@icequake.net> said:

 According to the mail that David Hinds received from a Toshiba engineer,
 ToPIC95 and 97 do require this, and ToPIC100 does not.  Maybe you have a
 later revision.

 For all chips, 16-bit cards can be enabled through ExCA.  So doesn't it
 make sense just to make this the default behavior for all Toshiba chips,
 to avoid corner cases showing up later?

Daniel responded:

 I disagree with ryan to change anything for topic97 bridges.  they work.
 and I couldn't find (read google) any report of a topic97 breaking on
 applying power with the CB registers.

 I'm having several toshba notebooks at work (and home) with topic95,97,100
 bridges.  Only the ones with a topic95 didn't work.

Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] auxiliary vector cleanups
H. J. Lu [Tue, 6 Sep 2005 22:16:49 +0000 (15:16 -0700)]
[PATCH] auxiliary vector cleanups

The size of auxiliary vector is fixed at 42 in linux/sched.h.  But it isn't
very obvious when looking at linux/elf.h.  This patch adds AT_VECTOR_SIZE
so that we can change it if necessary when a new vector is added.

Because of include file ordering problems, doing this necessitated the
extraction of the AT_* symbols into a standalone header file.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] radix_tag_get(): differentiate between no present node and tag unset cases
Marcelo Tosatti [Tue, 6 Sep 2005 22:16:48 +0000 (15:16 -0700)]
[PATCH] radix_tag_get(): differentiate between no present node and tag unset cases

Simple patch to radix_tree_tag_get() to return different values for non
present node and tag unset.

The function is not used by any in-kernel callers (yet), but this
information is definitely useful.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] radix-tree: Remove unnecessary indirections and clean up code
Christoph Lameter [Tue, 6 Sep 2005 22:16:46 +0000 (15:16 -0700)]
[PATCH] radix-tree: Remove unnecessary indirections and clean up code

- There is frequent use of indirections in the radix code. This patch
  removes those indirections, makes the code more readable and allows
  the compilers to generate better code.

- Removing indirections allows the removal of several casts.

- Removing indirections allows the reduction of the radix_tree_path
  size from 3 to 2 words.

- Use pathp-> consistently.

- Remove unnecessary tmp variable in radix_tree_insert

- Separate the upper layer processing from the lowest layer in __lookup()
  in order to make it easier to understand what is going on and allow
  compilers to generate better code for the loop.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Support powering sharp zaurus sl-5500 LCD up and down
Pavel Machek [Tue, 6 Sep 2005 22:16:45 +0000 (15:16 -0700)]
[PATCH] Support powering sharp zaurus sl-5500 LCD up and down

This adds support for powering Zaurus's video up and down.  PDA without
screen is kind of useless, so it is quite important...  I'll have to figure
out how to really control the frontlight, because LCD without that is quite
hard to read.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Clean up the old digi support and rescue it
Alan Cox [Tue, 6 Sep 2005 22:16:44 +0000 (15:16 -0700)]
[PATCH] Clean up the old digi support and rescue it

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] remove register_ioctl32_conversion and unregister_ioctl32_conversion
Adrian Bunk [Tue, 6 Sep 2005 22:16:43 +0000 (15:16 -0700)]
[PATCH] remove register_ioctl32_conversion and unregister_ioctl32_conversion

All users have been converted.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] kill bio->bi_set
Peter Osterlund [Tue, 6 Sep 2005 22:16:42 +0000 (15:16 -0700)]
[PATCH] kill bio->bi_set

Jens:

->bi_set is totally unnecessary bloat of struct bio.  Just define a proper
destructor for the bio and it already knows what bio_set it belongs too.

Peter:

Fixed the bugs.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Peter Osterlund <petero2@telia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Strip local symbols from kallsyms
Ralf Baechle [Tue, 6 Sep 2005 22:16:41 +0000 (15:16 -0700)]
[PATCH] Strip local symbols from kallsyms

Local symbols generated by gcc start with a `$'; no point in including them
in the kernel.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fs/jbd/: cleanups
Adrian Bunk [Tue, 6 Sep 2005 22:16:41 +0000 (15:16 -0700)]
[PATCH] fs/jbd/: cleanups

This patch contains the following cleanups:
- make needlessly global functions static
- journal.c: remove the unused global function __journal_internal_check
             and move the check to journal_init
- remove the following write-only global variable:
  - journal.c: current_journal
- remove the following unneeded EXPORT_SYMBOL:
  - journal.c: journal_recover

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Andreas Dilger <adilger@clusterfs.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] compat: be more consistent about [ug]id_t
Stephen Rothwell [Tue, 6 Sep 2005 22:16:40 +0000 (15:16 -0700)]
[PATCH] compat: be more consistent about [ug]id_t

When I first wrote the compat layer patches, I was somewhat cavalier about
the definition of compat_uid_t and compat_gid_t (or maybe I just
misunderstood :-)).  This patch makes the compat types much more consistent
with the types we are being compatible with and hopefully will fix a few
bugs along the way.

compat type type in compat arch
__compat_[ug]id_t __kernel_[ug]id_t
__compat_[ug]id32_t __kernel_[ug]id32_t
compat_[ug]id_t [ug]id_t

The difference is that compat_uid_t is always 32 bits (for the archs we
care about) but __compat_uid_t may be 16 bits on some.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] use select in sound/isa/Kconfig
Bodo Eggert [Tue, 6 Sep 2005 22:16:39 +0000 (15:16 -0700)]
[PATCH] use select in sound/isa/Kconfig

In sound/isa/Kconfig, select ISAPNP and depend on ISAPNP are intermixed,
resulting in funny behaviour.  (Soundcarts get selectable if other
soundcards are selected).

This patch changes the "depend on ISAPNP"s to select.

Signed-Off-By: Bodo Eggert <7eggert@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] inotify speedup
John McCutchan [Tue, 6 Sep 2005 22:16:38 +0000 (15:16 -0700)]
[PATCH] inotify speedup

Bypass an inotify-related fastpath spinlock and several function calls on
systems which have no inotify watches registered.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] NMI: Update NMI users of RCU to use new API
Paul E. McKenney [Tue, 6 Sep 2005 22:16:35 +0000 (15:16 -0700)]
[PATCH] NMI: Update NMI users of RCU to use new API

Uses of RCU for dynamically changeable NMI handlers need to use the new
rcu_dereference() and rcu_assign_pointer() facilities.  This change makes
it clear that these uses are safe from a memory-barrier viewpoint, but the
main purpose is to document exactly what operations are being protected by
RCU.  This has been tested on x86 and x86-64, which are the only
architectures affected by this change.

Signed-off-by: <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Provide better printk() support for SMP machines
David Howells [Tue, 6 Sep 2005 22:16:34 +0000 (15:16 -0700)]
[PATCH] Provide better printk() support for SMP machines

The attached patch prevents oopses interleaving with characters from
other printks on other CPUs by only breaking the lock if the oops is
happening on the machine holding the lock.

It might be better if the oops generator got the lock and then called an
inner vprintk routine that assumed the caller holds the lock, thus
making oops reports "atomic".

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] More __read_mostly variables
Christoph Lameter [Tue, 6 Sep 2005 22:16:33 +0000 (15:16 -0700)]
[PATCH] More __read_mostly variables

Move some more frequently read variables that showed up during some of our
performance tests as sometimes ending up in hot cachelines to the
read_mostly section.

Fix: Move the __read_mostly from before hpet_usec_quotient to follow the
variable like the other uses of __read_mostly.

Signed-off-by: Alok N Kataria <alokk@calsoftinc.com>
Signed-off-by: Christoph Lameter <christoph@scalex86.org>
Signed-off-by: Shai Fultheim <shai@scalex86.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] kallsyms: change compression algorithm
Paulo Marques [Tue, 6 Sep 2005 22:16:31 +0000 (15:16 -0700)]
[PATCH] kallsyms: change compression algorithm

This patch changes the way the compression algorithm works.  The base
algorithm is similiar to the previous but we force the compressed token
size to 2.

Having a fixed size compressed token allows for a lot of optimizations, and
that in turn allows this code to run over *all* the symbols faster than it
did before over just a subset.

Having it work over all the symbols will make it behave better when symbols
change positions between passes, and the "inconsistent kallsyms" messages
should become less frequent.

In my tests the compression ratio was degraded by about 0.5%, but the
results will depend greatly on the number of symbols to compress.

Signed-off-by: Paulo Marques <pmarques@grupopie.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] relayfs
Tom Zanussi [Tue, 6 Sep 2005 22:16:30 +0000 (15:16 -0700)]
[PATCH] relayfs

Here's the latest version of relayfs, against linux-2.6.11-mm2.  I'm hoping
you'll consider putting this version back into your tree - the previous
rounds of comment seem to have shaken out all the API issues and the number
of comments on the code itself have also steadily dwindled.

This patch is essentially the same as the relayfs redux part 5 patch, with
some minor changes based on reviewer comments.  Thanks again to Pekka
Enberg for those.  The patch size without documentation is now a little
smaller at just over 40k.  Here's a detailed list of the changes:

- removed the attribute_flags in relay open and changed it to a
  boolean specifying either overwrite or no-overwrite mode, and removed
  everything referencing the attribute flags.
- added a check for NULL names in relayfs_create_entry()
- got rid of the unnecessary multiple labels in relay_create_buf()
- some minor simplification of relay_alloc_buf() which got rid of a
  couple params
- updated the Documentation

In addition, this version (through code contained in the relay-apps tarball
linked to below, not as part of the relayfs patch) tries to make it as easy
as possible to create the cooperating kernel/user pieces of a typical and
common type of logging application, one where kernel logging is kicked off
when a user space data collection app starts and stops when the collection
app exits, with the data being automatically logged to disk in between.  To
create this type of application, you basically just include a header file
(relay-app.h, included in the relay-apps tarball) in your kernel module,
define a couple of callbacks and call an initialization function, and on
the user side call a single function that sets up and continuously monitors
the buffers, and writes data to files as it becomes available.  Channels
are created when the collection app is started and destroyed when it exits,
not when the kernel module is inserted, so different channel buffer sizes
can be specified for each separate run via command-line options.  See the
README in the relay-apps tarball for details.

Also included in the relay-apps tarball are a couple examples
demonstrating how you can use this to create quick and dirty kernel
logging/debugging applications.  They are:

- tprintk, short for 'tee printk', which temporarily puts a kprobe on
  printk() and writes a duplicate stream of printk output to a relayfs
  channel.  This could be used anywhere there's printk() debugging code
  in the kernel which you'd like to exercise, but would rather not have
  your system logs cluttered with debugging junk.  You'd probably want
  to kill klogd while you do this, otherwise there wouldn't be much
  point (since putting a kprobe on printk() doesn't change the output
  of printk()).  I've used this method to temporarily divert the packet
  logging output of the iptables LOG target from the system logs to
  relayfs files instead, for instance.

- klog, which just provides a printk-like formatted logging function
  on top of relayfs.  Again, you can use this to keep stuff out of your
  system logs if used in place of printk.

The example applications can be found here:

http://prdownloads.sourceforge.net/dprobes/relay-apps.tar.gz?download

From: Christoph Hellwig <hch@lst.de>

  avoid lookup_hash usage in relayfs

Signed-off-by: Tom Zanussi <zanussi@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] detect soft lockups
Ingo Molnar [Tue, 6 Sep 2005 22:16:27 +0000 (15:16 -0700)]
[PATCH] detect soft lockups

This patch adds a new kernel debug feature: CONFIG_DETECT_SOFTLOCKUP.

When enabled then per-CPU watchdog threads are started, which try to run
once per second.  If they get delayed for more than 10 seconds then a
callback from the timer interrupt detects this condition and prints out a
warning message and a stack dump (once per lockup incident).  The feature
is otherwise non-intrusive, it doesnt try to unlock the box in any way, it
only gets the debug info out, automatically, and on all CPUs affected by
the lockup.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] FUTEX_WAKE_OP: pthread_cond_signal() speedup
Jakub Jelinek [Tue, 6 Sep 2005 22:16:25 +0000 (15:16 -0700)]
[PATCH] FUTEX_WAKE_OP: pthread_cond_signal() speedup

ATM pthread_cond_signal is unnecessarily slow, because it wakes one waiter
(which at least on UP usually means an immediate context switch to one of
the waiter threads).  This waiter wakes up and after a few instructions it
attempts to acquire the cv internal lock, but that lock is still held by
the thread calling pthread_cond_signal.  So it goes to sleep and eventually
the signalling thread is scheduled in, unlocks the internal lock and wakes
the waiter again.

Now, before 2003-09-21 NPTL was using FUTEX_REQUEUE in pthread_cond_signal
to avoid this performance issue, but it was removed when locks were
redesigned to the 3 state scheme (unlocked, locked uncontended, locked
contended).

Following scenario shows why simply using FUTEX_REQUEUE in
pthread_cond_signal together with using lll_mutex_unlock_force in place of
lll_mutex_unlock is not enough and probably why it has been disabled at
that time:

The number is value in cv->__data.__lock.
        thr1            thr2            thr3
0       pthread_cond_wait
1       lll_mutex_lock (cv->__data.__lock)
0       lll_mutex_unlock (cv->__data.__lock)
0       lll_futex_wait (&cv->__data.__futex, futexval)
0                       pthread_cond_signal
1                       lll_mutex_lock (cv->__data.__lock)
1                                       pthread_cond_signal
2                                       lll_mutex_lock (cv->__data.__lock)
2                                         lll_futex_wait (&cv->__data.__lock, 2)
2                       lll_futex_requeue (&cv->__data.__futex, 0, 1, &cv->__data.__lock)
                          # FUTEX_REQUEUE, not FUTEX_CMP_REQUEUE
2                       lll_mutex_unlock_force (cv->__data.__lock)
0                         cv->__data.__lock = 0
0                         lll_futex_wake (&cv->__data.__lock, 1)
1       lll_mutex_lock (cv->__data.__lock)
0       lll_mutex_unlock (cv->__data.__lock)
          # Here, lll_mutex_unlock doesn't know there are threads waiting
          # on the internal cv's lock

Now, I believe it is possible to use FUTEX_REQUEUE in pthread_cond_signal,
but it will cost us not one, but 2 extra syscalls and, what's worse, one of
these extra syscalls will be done for every single waiting loop in
pthread_cond_*wait.

We would need to use lll_mutex_unlock_force in pthread_cond_signal after
requeue and lll_mutex_cond_lock in pthread_cond_*wait after lll_futex_wait.

Another alternative is to do the unlocking pthread_cond_signal needs to do
(the lock can't be unlocked before lll_futex_wake, as that is racy) in the
kernel.

I have implemented both variants, futex-requeue-glibc.patch is the first
one and futex-wake_op{,-glibc}.patch is the unlocking inside of the kernel.
 The kernel interface allows userland to specify how exactly an unlocking
operation should look like (some atomic arithmetic operation with optional
constant argument and comparison of the previous futex value with another
constant).

It has been implemented just for ppc*, x86_64 and i?86, for other
architectures I'm including just a stub header which can be used as a
starting point by maintainers to write support for their arches and ATM
will just return -ENOSYS for FUTEX_WAKE_OP.  The requeue patch has been
(lightly) tested just on x86_64, the wake_op patch on ppc64 kernel running
32-bit and 64-bit NPTL and x86_64 kernel running 32-bit and 64-bit NPTL.

With the following benchmark on UP x86-64 I get:

for i in nptl-orig nptl-requeue nptl-wake_op; do echo time elf/ld.so --library-path .:$i /tmp/bench; \
for j in 1 2; do echo ( time elf/ld.so --library-path .:$i /tmp/bench ) 2>&1; done; done
time elf/ld.so --library-path .:nptl-orig /tmp/bench
real 0m0.655s user 0m0.253s sys 0m0.403s
real 0m0.657s user 0m0.269s sys 0m0.388s
time elf/ld.so --library-path .:nptl-requeue /tmp/bench
real 0m0.496s user 0m0.225s sys 0m0.271s
real 0m0.531s user 0m0.242s sys 0m0.288s
time elf/ld.so --library-path .:nptl-wake_op /tmp/bench
real 0m0.380s user 0m0.176s sys 0m0.204s
real 0m0.382s user 0m0.175s sys 0m0.207s

The benchmark is at:
http://sourceware.org/ml/libc-alpha/2005-03/txt00001.txt
Older futex-requeue-glibc.patch version is at:
http://sourceware.org/ml/libc-alpha/2005-03/txt00002.txt
Older futex-wake_op-glibc.patch version is at:
http://sourceware.org/ml/libc-alpha/2005-03/txt00003.txt
Will post a new version (just x86-64 fixes so that the patch
applies against pthread_cond_signal.S) to libc-hacker ml soon.

Attached is the kernel FUTEX_WAKE_OP patch as well as a simple-minded
testcase that will not test the atomicity of the operation, but at least
check if the threads that should have been woken up are woken up and
whether the arithmetic operation in the kernel gave the expected results.

Acked-by: Ingo Molnar <mingo@redhat.com>
Cc: Ulrich Drepper <drepper@redhat.com>
Cc: Jamie Lokier <jamie@shareable.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] 3c59x PM fixes
Rafael J. Wysocki [Tue, 6 Sep 2005 22:16:22 +0000 (15:16 -0700)]
[PATCH] 3c59x PM fixes

This patch adds some missing pci-related calls to the suspend and resume
routines of the 3c59x driver.  It also makes the driver free/request IRQ on
suspend/resume, in accordance with the proposal at:
http://lists.osdl.org/pipermail/linux-pm/2005-May/000955.html

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] swsusp: update documentation
Pavel Machek [Tue, 6 Sep 2005 22:16:21 +0000 (15:16 -0700)]
[PATCH] swsusp: update documentation

This updates documentation a bit (mostly removing obsolete stuff), and
marks swsusp as no longer experimental in config.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Fix off by one in e820_mapped
Eric W. Biederman [Tue, 6 Sep 2005 22:16:20 +0000 (15:16 -0700)]
[PATCH] x86_64: Fix off by one in e820_mapped

This allows a valid iommu placed immediately after memory to work, to be
recognized as after the last byte of memory and not overlapping it.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: create sysfs entries for cpu only for present cpus
Ashok Raj [Tue, 6 Sep 2005 22:16:19 +0000 (15:16 -0700)]
[PATCH] x86_64: create sysfs entries for cpu only for present cpus

Need to create sysfs only for cpus that are present.  Without which we see
NR_CPUS entries created when we have CONFIG_HOTPLUG and CONFIG_HOTPLUG_CPU
enabled.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Fix cluster mode send_IPI_allbutself to use get_cpu()/put_cpu()
Ashok Raj [Tue, 6 Sep 2005 22:16:18 +0000 (15:16 -0700)]
[PATCH] x86_64: Fix cluster mode send_IPI_allbutself to use get_cpu()/put_cpu()

Need to ensure we dont get prempted when we clear ourself from mask when using
clustered mode genapic code.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: prefetchw() can fall back to prefetch() if !3DNOW
Eric Dumazet [Tue, 6 Sep 2005 22:16:17 +0000 (15:16 -0700)]
[PATCH] x86_64: prefetchw() can fall back to prefetch() if !3DNOW

This is a multi-part message in MIME format.  If the cpu lacks 3DNOW
feature, we can use a normal prefetcht0 instruction instead of NOP5.
"prefetchw (%rxx)" and "prefetcht0 (%rxx)" have the same length, ranging
from 3 to 5 bytes depending on the register.  So this patch even helps
AMD64, shortening the length of the code.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: print processor number in show_regs
Zwane Mwaikambo [Tue, 6 Sep 2005 22:16:16 +0000 (15:16 -0700)]
[PATCH] x86_64: print processor number in show_regs

Up to date I've been using the GS value to determine the processor number
in dumps from show_regs, however this can be cumbersome to do if you don't
have the vmlinux to verify with the address of cpu_pda, how about the
following?  I considered using hard_smp_processor_id for robustness but we
already dereference current so we're already relying on MSR_GS_BASE being
sane.

Signed-off-by: Zwane Mwaikambo <zwane@arm.linux.org.uk>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity
Ashok Raj [Tue, 6 Sep 2005 22:16:15 +0000 (15:16 -0700)]
[PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity

When handling writes to /proc/irq, current code is re-programming rte
entries directly. This is not recommended and could potentially cause
chipset's to lockup, or cause missing interrupts.

CONFIG_IRQ_BALANCE does this correctly, where it re-programs only when the
interrupt is pending. The same needs to be done for /proc/irq handling as well.
Otherwise user space irq balancers are really not doing the right thing.

- Changed pending_irq_balance_cpumask to pending_irq_migrate_cpumask for
  lack of a generic name.
- added move_irq out of IRQ_BALANCE, and added this same to X86_64
- Added new proc handler for write, so we can do deferred write at irq
  handling time.
- Display of /proc/irq/XX/smp_affinity used to display CPU_MASKALL, instead
  it now shows only active cpu masks, or exactly what was set.
- Provided a common move_irq implementation, instead of duplicating
  when using generic irq framework.

Tested on i386/x86_64 and ia64 with CONFIG_PCI_MSI turned on and off.
Tested UP builds as well.

MSI testing: tbd: I have cards, need to look for a x-over cable, although I
did test an earlier version of this patch.  Will test in a couple days.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Acked-by: Zwane Mwaikambo <zwane@holomorphy.com>
Grudgingly-acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Coywolf Qi Hunt <coywolf@lovecn.org>
Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc32: add missing sysfs node for ocp_func_emac_data.phy_feat_exc
Eugene Surovegin [Tue, 6 Sep 2005 22:16:14 +0000 (15:16 -0700)]
[PATCH] ppc32: add missing sysfs node for ocp_func_emac_data.phy_feat_exc

Add sysfs node for ocp_func_emac_data.phy_feat_exc field.

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc32: fix ocp_device_suspend to use pm_message_t instead of u32
Eugene Surovegin [Tue, 6 Sep 2005 22:16:13 +0000 (15:16 -0700)]
[PATCH] ppc32: fix ocp_device_suspend to use pm_message_t instead of u32

Recent "u32 -> pm_message_t" change triggered hidden bug in
ocp_device_suspend.  Fix it to correctly use pm_message_t instead of u32.

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/paulus/ppc64-2.6
Linus Torvalds [Tue, 6 Sep 2005 12:16:24 +0000 (05:16 -0700)]
Merge /pub/scm/linux/kernel/git/paulus/ppc64-2.6

19 years agoMerge branch 'upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
Linus Torvalds [Tue, 6 Sep 2005 07:47:18 +0000 (00:47 -0700)]
Merge branch 'upstream' of /linux/kernel/git/jgarzik/netdev-2.6

19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Tue, 6 Sep 2005 07:45:34 +0000 (00:45 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild
Linus Torvalds [Tue, 6 Sep 2005 07:35:51 +0000 (00:35 -0700)]
Merge /pub/scm/linux/kernel/git/sam/kbuild

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6
Linus Torvalds [Tue, 6 Sep 2005 07:32:12 +0000 (00:32 -0700)]
Merge /pub/scm/linux/kernel/git/gregkh/driver-2.6

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6
Linus Torvalds [Tue, 6 Sep 2005 07:31:02 +0000 (00:31 -0700)]
Merge /pub/scm/linux/kernel/git/gregkh/i2c-2.6

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Tue, 6 Sep 2005 07:29:52 +0000 (00:29 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

19 years ago[PATCH] remove linux/version.h include from arch/ppc64
Olaf Hering [Sun, 10 Jul 2005 19:35:15 +0000 (19:35 +0000)]
[PATCH] remove linux/version.h include from arch/ppc64

Changing CONFIG_LOCALVERSION rebuilds too much, for no apparent reason.

Use system_utsname for progress and debug header.

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Invert sense of SLB class bit
David Gibson [Tue, 6 Sep 2005 04:59:47 +0000 (14:59 +1000)]
[PATCH] Invert sense of SLB class bit

Currently, we set the class bit in kernel SLB entries, and clear it on
user SLB entries.  On POWER5, ERAT entries created in real mode have
the class bit clear.  So to avoid flushing kernel ERAT entries on each
context switch, this patch inverts our usage of the class bit, setting
it on user SLB entries and clearing it on kernel SLB entries.

Booted on POWER5 and G5.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[SPARC64]: Kconfig fix (GEN_RTC dependencies)
Al Viro [Tue, 6 Sep 2005 06:35:41 +0000 (23:35 -0700)]
[SPARC64]: Kconfig fix (GEN_RTC dependencies)

Yet another architecture not coverd by GEN_RTC - sparc64 never picked
it until now and it doesn't have asm/rtc.h to go with it, so it
wouldn't compile anyway (or have these ioctls in the user-visible
headers, for that matter).

FWIW, I'm very tempted to introduce ARCH_HAS_GEN_RTC and have it set
in arch/*/Kconfig for architectures that know what to do with this
stuff - for something supposedly generic the list of architectures
where it doesn't work is getting too long...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SUNSU]: Compile fixes.
Al Viro [Tue, 6 Sep 2005 06:35:05 +0000 (23:35 -0700)]
[SUNSU]: Compile fixes.

sunsu had been broken by ->stop_tx/->start_tx API changes.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Don't include drivers/firmware/Kconfig
David S. Miller [Tue, 6 Sep 2005 06:34:13 +0000 (23:34 -0700)]
[SPARC64]: Don't include drivers/firmware/Kconfig

It's really not relevant for this platform in any
way, after all.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[RTC]: Use SA_SHIRQ in sparc specific code.
David S. Miller [Tue, 6 Sep 2005 06:33:05 +0000 (23:33 -0700)]
[RTC]: Use SA_SHIRQ in sparc specific code.

Based upon a report from Jason Wever.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[MOXA]: Fix this driver properly.
Al Viro [Tue, 6 Sep 2005 06:30:15 +0000 (23:30 -0700)]
[MOXA]: Fix this driver properly.

Actually, proper fix of that breakage is embarrassingly simple - it's yet
another gratitious leftover include of asm/segment.h, so incremental to the
previos would be removal of that BROKEN and removal of bogus include from
mxser.c itself.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IEEE80211]: Use correct size_t printf format string in ieee80211_rx.c
David S. Miller [Tue, 6 Sep 2005 06:19:49 +0000 (23:19 -0700)]
[IEEE80211]: Use correct size_t printf format string in ieee80211_rx.c

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] ppc64: Fix build with oprofile disabled
Anton Blanchard [Tue, 6 Sep 2005 04:59:16 +0000 (14:59 +1000)]
[PATCH] ppc64: Fix build with oprofile disabled

Fix build with oprofile disabled.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Move oprofile_model into cpu feature struct
Anton Blanchard [Tue, 6 Sep 2005 04:57:52 +0000 (14:57 +1000)]
[PATCH] ppc64: Move oprofile_model into cpu feature struct

Move oprofile_model into cpu feature struct.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Move oprofile_impl.h into include/asm-ppc64
Anton Blanchard [Tue, 6 Sep 2005 04:55:35 +0000 (14:55 +1000)]
[PATCH] ppc64: Move oprofile_impl.h into include/asm-ppc64

Move oprofile_impl.h into include/asm-ppc64 in preparation for moving
oprofile_model into cpu feature struct.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Add oprofile cpu_type to cpu feature struct
Anton Blanchard [Tue, 6 Sep 2005 04:53:57 +0000 (14:53 +1000)]
[PATCH] ppc64: Add oprofile cpu_type to cpu feature struct

Add oprofile cpu_type to cpu feature struct.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Use num_pmcs in oprofile code
Anton Blanchard [Tue, 6 Sep 2005 04:52:12 +0000 (14:52 +1000)]
[PATCH] ppc64: Use num_pmcs in oprofile code

Change oprofile to use num_pmcs from the cpu feature struct.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: remove CPU_FTR_PMC8
Anton Blanchard [Tue, 6 Sep 2005 04:50:48 +0000 (14:50 +1000)]
[PATCH] ppc64: remove CPU_FTR_PMC8

Remove the CPU_FTR_PMC8 feature now we encode the number of PMCs
directly.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: add number of PMCs to cputable
Anton Blanchard [Tue, 6 Sep 2005 04:47:49 +0000 (14:47 +1000)]
[PATCH] ppc64: add number of PMCs to cputable

Add a field in the cputable struct to store the number of PMCs.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[IPW2200]: ipw2200.h needs linux/dma-mapping.h
David S. Miller [Tue, 6 Sep 2005 06:08:01 +0000 (23:08 -0700)]
[IPW2200]: ipw2200.h needs linux/dma-mapping.h

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] ppc64: Allow world readable /proc/ppc64/lparcfg
Wim Coekaerts [Tue, 6 Sep 2005 03:22:47 +0000 (20:22 -0700)]
[PATCH] ppc64: Allow world readable /proc/ppc64/lparcfg

I would like to be able to read the lparcfg data from any user so we
can make "intelligent" decisions based on underlying attributes when
running in lpars.  Yes there's software that likes to do this :) and
runs as non-root.

It's very similar to say VM where you can get CP to provide feedback
of the real hardware inside a VM guest.

Signed-off-by: Wim Coekaerts <wim.coekaerts@oracle.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: remove use of asm/segment.h
Kumar Gala [Wed, 24 Aug 2005 16:56:56 +0000 (11:56 -0500)]
[PATCH] ppc64: remove use of asm/segment.h

Removed PPC64 architecture specific users of asm/segment.h.

Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc/ppc64: Merge more include files
Jon Loeliger [Thu, 1 Sep 2005 20:51:52 +0000 (15:51 -0500)]
[PATCH] ppc/ppc64: Merge more include files

This patch merges several include files from
asm-ppc and asm-ppc64 into the new asm-powerpc.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Move 3 more headers to asm-powerpc
Becky Bruce [Sun, 4 Sep 2005 00:01:57 +0000 (19:01 -0500)]
[PATCH] Move 3 more headers to asm-powerpc

Merged several nearly-identical header files from asm-ppc and asm-ppc64
into asm-powerpc.

Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: speedup cmpxchg
Anton Blanchard [Tue, 6 Sep 2005 03:05:58 +0000 (13:05 +1000)]
[PATCH] ppc64: speedup cmpxchg

cmpxchg has the following code:

__typeof__(*(ptr)) _o_ = (o);
__typeof__(*(ptr)) _n_ = (n);

Unfortunately it makes gcc 4.0 store and load the variables to the stack.
Eg in atomic_dec_and_test we get:

  stw     r10,112(r1)
  stw     r9,116(r1)
  lwz     r9,112(r1)
  lwz     r0,116(r1)

x86 is just casting the values so do that instead. Also change __xchg*
and __cmpxchg* to take unsigned values, removing a few sign extensions.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>