]> err.no Git - linux-2.6/log
linux-2.6
17 years ago[BLUETOOTH]: Fix locking in hci_sock_dev_event().
Satyam Sharma [Thu, 17 May 2007 06:50:16 +0000 (23:50 -0700)]
[BLUETOOTH]: Fix locking in hci_sock_dev_event().

We presently use lock_sock() to acquire a lock on a socket in
hci_sock_dev_event(), but this goes BUG because lock_sock()
can sleep and we're already holding a read-write spinlock at
that point. So, we must use the non-sleeping BH version,
bh_lock_sock().

However, hci_sock_dev_event() is called from user context and
hence using simply bh_lock_sock() will deadlock against a
concurrent softirq that tries to acquire a lock on the same
socket. Hence, disabling BH's before acquiring the socket lock
and enable them afterwards, is the proper solution to fix
socket locking in hci_sock_dev_event().

Signed-off-by: Satyam Sharma <ssatyam@cse.iitk.ac.in>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: Fix BMSR_100{HALF,FULL}2 defines in linux/mii.h
David S. Miller [Wed, 16 May 2007 07:30:09 +0000 (00:30 -0700)]
[NET]: Fix BMSR_100{HALF,FULL}2 defines in linux/mii.h

Noticed by Matvejchikov Ilya.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: lockdep classes in register_netdevice
Jarek Poplawski [Wed, 16 May 2007 05:46:18 +0000 (22:46 -0700)]
[NET]: lockdep classes in register_netdevice

After initializing dev->_xmit_lock register_netdevice()
sets lockdep class according to dev->type.

Idea of this patch - by David Miller.

Reported & tested by: "Yuriy N. Shkandybin" <jura@netams.com>
Signed-off-by: Jarek Poplawski <jarkao2@o2.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoFix incorrect prototype for ipxrtr_route_packet()
David Woodhouse [Thu, 17 May 2007 10:48:12 +0000 (18:48 +0800)]
Fix incorrect prototype for ipxrtr_route_packet()

The function ipxrtr_route_packet() takes a 'len' argument of type
size_t. However, its prototype in af_ipx.c incorrectly suggests that the
corresponding argument is of type 'int' instead.

Discovered by building with --combine and letting the compiler see it
all at once.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoNS16550A: Restore HS settings in EXCR2 on resume
David Woodhouse [Thu, 17 May 2007 06:27:39 +0000 (14:27 +0800)]
NS16550A: Restore HS settings in EXCR2 on resume

After a suspend/resume cycle, the UART may have been reset into
low-speed mode -- either because it's actually been reset, or because
the firmware pokes at the old-style divisor registers. If we detected it
as a NS16550A SuperIO chip in the first place and set baud_base to
921600, then we should do so again in the resume path.

This patch adds that code to serial8250_resume_port(), and also makes
serial8250_resume() actually call serial8250_resume_port() for each port
instead of just calling uart_resume_port() directly. And thus fixes
serial port operation after suspend/resume.

It also fixes a bogus comment where we write the EXCR2 register with a
comment saying /* EXCR1 */

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomm: more rmap checking
Nick Piggin [Thu, 17 May 2007 05:11:21 +0000 (22:11 -0700)]
mm: more rmap checking

Re-introduce rmap verification patches that Hugh removed when he removed
PG_map_lock. PG_map_lock actually isn't needed to synchronise access to
anonymous pages, because PG_locked and PTL together already do.

These checks were important in discovering and fixing a rare rmap corruption
in SLES9.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoFix page allocation flags in grow_dev_page()
Christoph Lameter [Thu, 17 May 2007 05:11:21 +0000 (22:11 -0700)]
Fix page allocation flags in grow_dev_page()

grow_dev_page() simply passes GFP_NOFS to find_or_create_page.  This means
the allocation of radix tree nodes is done with GFP_NOFS and the allocation
of a new page is done using GFP_NOFS.

The mapping has a flags field that contains the necessary allocation flags
for the page cache allocation.  These need to be consulted in order to get
DMA and HIGHMEM allocations etc right.  And yes a blockdev could be
allowing Highmem allocations if its a ramdisk.

Cc: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoswsusp: fix sysfs interface
Rafael J. Wysocki [Thu, 17 May 2007 05:11:19 +0000 (22:11 -0700)]
swsusp: fix sysfs interface

The sysfs files /sys/power/disk and /sys/power/state do not work as
documented, since they allow the user to write only a few initial
characters of the input string to trigger the option (eg.  'echo pl >
/sys/power/disk' activates the platform mode of hibernation).  Fix it.

Special thanks to Peter Moulder <Peter.Moulder@infotech.monash.edu.au> for
pointing out the problem.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agocircular locking dependency found in QUOTA OFF
Jan Kara [Thu, 17 May 2007 05:11:19 +0000 (22:11 -0700)]
circular locking dependency found in QUOTA OFF

i_mutex on quota files is special.  Unlike i_mutexes for other inodes it is
acquired under dqonoff_mutex.  Tell lockdep about this lock ranking.  Also
comment and code in quota_sync_sb() seem to be bogus (as i_mutex for quota
file can be acquired under dqonoff_mutex).  Move truncate_inode_pages()
call under dqonoff_mutex and save some problems with races...

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoi386: don't check_pgt_cache in flush_tlb_mm
Hugh Dickins [Thu, 17 May 2007 05:11:18 +0000 (22:11 -0700)]
i386: don't check_pgt_cache in flush_tlb_mm

No other architecture calls check_pgt_cache() from within flush_tlb_mm(),
and i386 is already calling check_pgt_cache() from the usual places,
tlb_finish_mmu() and cpu_idle() (the latter being odd, but not unusual).
flush_tlb_mm() has no business to be freeing pages: remove that line, which
sneaked in with slub's i386 support.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Cc: Andi Kleen <ak@suse.de>
Acked-by: Christoph Lameter <clameter@sgi.com>
Acked-by: William Lee Irwin III <wli@holomorphy.com>
Cc: David Miller <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoecryptfs: use zero_user_page
Nate Diller [Thu, 17 May 2007 05:11:17 +0000 (22:11 -0700)]
ecryptfs: use zero_user_page

Use zero_user_page() instead of open-coding it.

Signed-off-by: Nate Diller <nate.diller@gmail.com>
Cc: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomake sysctl/kernel/core_pattern and fs/exec.c agree on maximum core filename size
Dan Aloni [Thu, 17 May 2007 05:11:16 +0000 (22:11 -0700)]
make sysctl/kernel/core_pattern and fs/exec.c agree on maximum core filename size

Make sysctl/kernel/core_pattern and fs/exec.c agree on maximum core
filename size and change it to 128, so that extensive patterns such as
'/local/cores/%e-%h-%s-%t-%p.core' won't result in truncated filename
generation.

Signed-off-by: Dan Aloni <da-x@monatomic.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoicom: add new sub-device-id to support new adapter
wendy xiong [Thu, 17 May 2007 05:11:16 +0000 (22:11 -0700)]
icom: add new sub-device-id to support new adapter

This patch add new sub-device-id to support new adapter and changed the
interrupt irq number for unsigned char to unsigned int.

[akpm@osdl.org: fix whitespace in device table]
Signed-off by: Wendy Xiong <wendyx@us.ibm.com>

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agortc kconfig clarification
David Brownell [Thu, 17 May 2007 05:11:15 +0000 (22:11 -0700)]
rtc kconfig clarification

Make drivers/rtc/Kconfig be clearer about what the various "interfaces"
actually mean, by showing path names.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agortc-omap build fix
David Brownell [Thu, 17 May 2007 05:11:14 +0000 (22:11 -0700)]
rtc-omap build fix

Fix typo which breaks build.  How did that happen?

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agogpio interface loosens call restrictions
David Brownell [Thu, 17 May 2007 05:11:13 +0000 (22:11 -0700)]
gpio interface loosens call restrictions

Loosen gpio_{request,free}() and gpio_direction_{in,out}put() call context
restrictions slightly, so a common idiom is no longer an error: board init
code setting up spinlock-safe GPIOs before tasking is enabled.

The issue was caught by some paranoid code with might_sleep() checks.  The
legacy platform-specific GPIO interfaces stick to spinlock-safe GPIOs, so this
change reflects current implementations and won't break anything.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agodocbook: make kernel-locking table readable
Randy Dunlap [Thu, 17 May 2007 05:11:12 +0000 (22:11 -0700)]
docbook: make kernel-locking table readable

Andi Kleen pointed out to me that the kernel locking cheat sheet
table entries are unreadable.

Make table entries smaller so that pdf and ps output is readable
(columns were being overwritten and garbled) by using abbreviations.
This allows the tables to fit on one page cleanly.
Add a Legend for the abbreviations:
  SLIS: spin_lock_irqsave
  SLI:  spin_lock_irq
  SL:   spin_lock
  SLBH: spin_lock_bh
  DI:   down_interruptible

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoparport: mailing list is subscribers-only
Randy Dunlap [Thu, 17 May 2007 05:11:12 +0000 (22:11 -0700)]
parport: mailing list is subscribers-only

linux-parport is subscribers-only:

Your mail to 'Linux-parport' with the subject
    Re: [QUESTION] parallel console configuration
Is being held until the list moderator can review it for approval.
The reason it is being held:
    Post by non-member to a members-only list

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomake freezeable workqueues singlethread
Oleg Nesterov [Thu, 17 May 2007 05:11:11 +0000 (22:11 -0700)]
make freezeable workqueues singlethread

It is a known fact that freezeable multithreaded workqueues doesn't like
CPU_DEAD. We keep them only for the incoming CPU-hotplug rework.

Sadly, we can't just kill create_freezeable_workqueue() right now, make
them singlethread.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoRefine SCREEN_INFO sanity check for vgacon initialization
Gerd Hoffmann [Thu, 17 May 2007 05:11:09 +0000 (22:11 -0700)]
Refine SCREEN_INFO sanity check for vgacon initialization

Refine SCREEN_INFO sanity check for vgacon initialization.

Checking video mode field only to see whenever SCREEN_INFO is
initialized is not enougth, in some cases it is zero although
a vga card is present.  Lets additionally check cols and lines.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Andi Kleen <ak@suse.de>
Cc: Alan <alan@lxorguk.ukuu.org.uk>
Cc: Ingo Molnar <mingo@elte.hu>
Acked-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoLet smp_call_function_single return -EBUSY on UP
Heiko Carstens [Thu, 17 May 2007 05:11:09 +0000 (22:11 -0700)]
Let smp_call_function_single return -EBUSY on UP

All architectures that have an implementation of smp_call_function_single
let it return -EBUSY if it is asked to execute func on the current cpu.
(akpm: except for x86_64).  Therefore the UP version must always return
-EBUSY.

[akpm@linux-foundation.org: build fix]
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agosimplify compat_sys_timerfd
Heiko Carstens [Thu, 17 May 2007 05:11:08 +0000 (22:11 -0700)]
simplify compat_sys_timerfd

Just thought this is easier to read.

Acked-by: Davide Libenzi <davidel@xmailserver.org>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMake __vunmap static
Benjamin Herrenschmidt [Thu, 17 May 2007 05:11:07 +0000 (22:11 -0700)]
Make __vunmap static

__vunmap doesn't seem to be used outside of mm/vmalloc.c, and has
no prototype in any header so let's make it static

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoi386/x86-64: fix section mismatch
Bernhard Walle [Thu, 17 May 2007 05:11:06 +0000 (22:11 -0700)]
i386/x86-64: fix section mismatch

WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to
.init.text:mtrr_bp_init from .text between 'id entify_cpu' (at offset 0x6571)
and 'IRQ0x20_interrupt'

It's because identify_cpu() which is __cpuinit calls mtrr_bp_init() which is
__init(). __cpuinit() expands to nothing if CONFIG_HOTPLUG_CPU=y and so the
call is illegal.

Signed-off-by: Bernhard Walle <bwalle@suse.de>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoacpi: fix potential call to a freed memory section.
Aaron Durbin [Thu, 17 May 2007 05:11:06 +0000 (22:11 -0700)]
acpi: fix potential call to a freed memory section.

Strip __cpuinit[data] from Node <-> PXM routines and supporting data
structures.  Also make pxm_to_node_map and node_to_pxm_map local to the
numa acpi module.

This fixes a bug triggered by the following conditions:
- boot on a machine with a SLIT table defined
- kernel is configured w/ CONFIG_HOTPLUG_CPU=n
- cat /sys/devices/system/node/node*/distance
This will cause an oops by calling into a freed memory section.

In particular, on x86_64, __node_distance calls node_to_pxm().

Signed-off-by: Aaron Durbin <adurbin@google.com>
Cc: Len Brown <lenb@kernel.org>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSlab allocators: define common size limitations
Christoph Lameter [Thu, 17 May 2007 05:11:01 +0000 (22:11 -0700)]
Slab allocators: define common size limitations

Currently we have a maze of configuration variables that determine the
maximum slab size.  Worst of all it seems to vary between SLAB and SLUB.

So define a common maximum size for kmalloc.  For conveniences sake we use
the maximum size ever supported which is 32 MB.  We limit the maximum size
to a lower limit if MAX_ORDER does not allow such large allocations.

For many architectures this patch will have the effect of adding large
kmalloc sizes.  x86_64 adds 5 new kmalloc sizes.  So a small amount of
memory will be needed for these caches (contemporary SLAB has dynamically
sizeable node and cpu structure so the waste is less than in the past)

Most architectures will then be able to allocate object with sizes up to
MAX_ORDER.  We have had repeated breakage (in fact whenever we doubled the
number of supported processors) on IA64 because one or the other struct
grew beyond what the slab allocators supported.  This will avoid future
issues and f.e.  avoid fixes for 2k and 4k cpu support.

CONFIG_LARGE_ALLOCS is no longer necessary so drop it.

It fixes sparc64 with SLAB.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSLUB: Simplify debug code
Christoph Lameter [Thu, 17 May 2007 05:11:00 +0000 (22:11 -0700)]
SLUB: Simplify debug code

Consolidate functionality into the #ifdef section.

Extract tracing into one subroutine.

Move object debug processing into the #ifdef section so that the
code in __slab_alloc and __slab_free becomes minimal.

Reduce number of functions we need to provide stubs for in the !SLUB_DEBUG case.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoRemove SLAB_CTOR_CONSTRUCTOR
Christoph Lameter [Thu, 17 May 2007 05:10:57 +0000 (22:10 -0700)]
Remove SLAB_CTOR_CONSTRUCTOR

SLAB_CTOR_CONSTRUCTOR is always specified. No point in checking it.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Steven French <sfrench@us.ibm.com>
Cc: Michael Halcrow <mhalcrow@us.ibm.com>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Miklos Szeredi <miklos@szeredi.hu>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Dave Kleikamp <shaggy@austin.ibm.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Anton Altaparmakov <aia21@cantab.net>
Cc: Mark Fasheh <mark.fasheh@oracle.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Jan Kara <jack@ucw.cz>
Cc: David Chinner <dgc@sgi.com>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSLUB: Do our own flags based on PG_active and PG_error
Christoph Lameter [Thu, 17 May 2007 05:10:56 +0000 (22:10 -0700)]
SLUB: Do our own flags based on PG_active and PG_error

The atomicity when handling flags in SLUB is not necessary since both flags
used by SLUB are not updated in a racy way.  Flag updates are either done
during slab creation or destruction or under slab_lock.  Some of these flags
do not have the non atomic variants that we need.  So define our own.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSLUB: slabinfo fixes
Christoph Lameter [Thu, 17 May 2007 05:10:55 +0000 (22:10 -0700)]
SLUB: slabinfo fixes

Align the output of % with K/M/G of sizes.

Check for empty NUMA information to avoid segfault on !NUMA.

-r should work directly not only if we match a single slab
   without additional options.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoslub: fix handling of oversized slabs
Andrew Morton [Thu, 17 May 2007 05:10:54 +0000 (22:10 -0700)]
slub: fix handling of oversized slabs

I'm getting zillions of undefined references to __kmalloc_size_too_large on
alpha.  For some reason alpha is building out-of-line copies of kmalloc_slab()
into lots of compilation units.

It turns out that gcc just isn't smart enough to work out that
__builtin_contant_p(size)==true implies that __builtin_contant_p(index)==true.

So let's give it a bit of help.

Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoslab: warn on zero-length allocations
Christoph Lameter [Thu, 17 May 2007 05:10:53 +0000 (22:10 -0700)]
slab: warn on zero-length allocations

slub warns on this, and we're working on making kmalloc(0) return NULL.
Let's make slab warn as well so our testers detect such callers more
rapidly.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSLUB: Define functions for cpu slab handling instead of using PageActive
Christoph Lameter [Thu, 17 May 2007 05:10:53 +0000 (22:10 -0700)]
SLUB: Define functions for cpu slab handling instead of using PageActive

Use inline functions to access the per cpu bit.  Intoduce the notion of
"freezing" a slab to make things more understandable.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSLAB: Move two remaining SLAB specific definitions to slab_def.h
Christoph Lameter [Thu, 17 May 2007 05:10:52 +0000 (22:10 -0700)]
SLAB: Move two remaining SLAB specific definitions to slab_def.h

Two definitions remained in slab.h that are particular to the SLAB allocator.
Move to slab_def.h

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSLUB: Remove depends on EXPERIMENTAL and !ARCH_USES_SLAB_PAGE_STRUCT
Christoph Lameter [Thu, 17 May 2007 05:10:51 +0000 (22:10 -0700)]
SLUB: Remove depends on EXPERIMENTAL and !ARCH_USES_SLAB_PAGE_STRUCT

No arch sets ARCH_USES_SLAB_PAGE_STRUCT anymore.

Remove the experimental dependency as well since we want to have it as
a real alternative to SLAB.

It all comes down to killing a single line from init/Kconfig.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSlab allocators: Drop support for destructors
Christoph Lameter [Thu, 17 May 2007 05:10:50 +0000 (22:10 -0700)]
Slab allocators: Drop support for destructors

There is no user of destructors left.  There is no reason why we should keep
checking for destructors calls in the slab allocators.

The RFC for this patch was discussed at
http://marc.info/?l=linux-kernel&m=117882364330705&w=2

Destructors were mainly used for list management which required them to take a
spinlock.  Taking a spinlock in a destructor is a bit risky since the slab
allocators may run the destructors anytime they decide a slab is no longer
needed.

Patch drops destructor support.  Any attempt to use a destructor will BUG().

Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoslob: implement RCU freeing
Nick Piggin [Thu, 17 May 2007 05:10:49 +0000 (22:10 -0700)]
slob: implement RCU freeing

The SLOB allocator should implement SLAB_DESTROY_BY_RCU correctly, because
even on UP, RCU freeing semantics are not equivalent to simply freeing
immediately.  This also allows SLOB to be used on SMP.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Acked-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Thu, 17 May 2007 04:28:49 +0000 (21:28 -0700)]
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  libata: track spindown status and skip spindown_compat if possible
  libata: fix shutdown warning message printing
  libata-acpi: add ATA_FLAG_ACPI_SATA port flag
  libata: during revalidation, check n_sectors after device is configured
  libata: separate out ata_dev_reread_id()
  pata_scc had been missed by ata_std_prereset() switch

17 years agoMerge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
Linus Torvalds [Thu, 17 May 2007 04:21:33 +0000 (21:21 -0700)]
Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa

* 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa:
  [ALSA] usbaudio - Coping with short replies in usbmixer
  [ALSA] Include quirks from Ubuntu Dapper/Edgy/Feisty
  [ALSA] Fix probe of non-PnP ISA devices
  [ALSA] version 1.0.14rc4
  [ALSA] hda-codec - Fix ALC882/861VD codec support on some laptops
  [ALSA] ASoC AC97 device reg bugfix
  [ALSA] ASoC AC97 static GPL symbol fix
  [ALSA] hda-codec - Make the mixer capability check more robust
  [ALSA] usb-audio: another Logitech QuickCam ID

17 years agoMerge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32
Linus Torvalds [Thu, 17 May 2007 04:20:28 +0000 (21:20 -0700)]
Merge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32

* 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32:
  [AVR32] Implement platform hooks for atmel_lcdfb driver
  [AVR32] Wire up signalfd, timerfd and eventfd
  [AVR32] optimize pagefault path
  [AVR32] Remove bogus comment in arch/avr32/kernel/irq.c

17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Thu, 17 May 2007 04:19:45 +0000 (21:19 -0700)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC64]: Add hypervisor API negotiation and fix console bugs.

17 years agoFix: find_or_create_page skips cpuset memory spreading.
Christoph Lameter [Wed, 16 May 2007 06:57:09 +0000 (23:57 -0700)]
Fix: find_or_create_page skips cpuset memory spreading.

We call alloc_page where we should be calling __page_cache_alloc.

__page_cache_alloc performs cpuset memory spreading.  alloc_page does not.
There is no reason that pages allocated via find_or_create should be
exempt.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoparport_pc needs dma-mapping.h
Andrew Morton [Wed, 16 May 2007 06:57:08 +0000 (23:57 -0700)]
parport_pc needs dma-mapping.h

alpha:

drivers/parport/parport_pc.c: In function 'parport_pc_fifo_write_block_dma':
drivers/parport/parport_pc.c:636: warning: implicit declaration of function 'dma_map_single'
drivers/parport/parport_pc.c:637: error: 'DMA_TO_DEVICE' undeclared (first use in this function)
drivers/parport/parport_pc.c:637: error: (Each undeclared identifier is reported only once
drivers/parport/parport_pc.c:637: error: for each function it appears in.)

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agospi: fix spidev for >sizeof(long)/32 devices
Domen Puncer [Wed, 16 May 2007 06:57:05 +0000 (23:57 -0700)]
spi: fix spidev for >sizeof(long)/32 devices

find_first_zero_bit accepts number of bits, not longs.

Signed-off-by: Domen Puncer <domen.puncer@telargo.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoAFS: Fix afs_prepare_write()
David Howells [Wed, 16 May 2007 06:57:04 +0000 (23:57 -0700)]
AFS: Fix afs_prepare_write()

afs_prepare_write() should not mark a page up to date if it only partially
fills it in, in expectation of the caller filling in the rest prior to calling
commit_write().  commit_write(), however, should mark the page up to date.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoslub: don't confuse ctor and dtor
Hugh Dickins [Wed, 16 May 2007 06:57:04 +0000 (23:57 -0700)]
slub: don't confuse ctor and dtor

kmem_cache_create() was swapping ctor and dtor in calling find_mergeable():
though it caused no bug, and probably never would, even if destructors are
retained; but fix it so as not to generate anxiety ;)

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSLUB: It is legit to allocate a slab of the maximum permitted size
Christoph Lameter [Wed, 16 May 2007 06:57:03 +0000 (23:57 -0700)]
SLUB: It is legit to allocate a slab of the maximum permitted size

Sorry I screwed up the comparison. It is only an error if we attempt
to allocate a slab larger than the maximum allowed size.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoAFS: write back dirty data on unmount
David Howells [Wed, 16 May 2007 06:57:02 +0000 (23:57 -0700)]
AFS: write back dirty data on unmount

Fix AFS to write back dirty on unmounting.  This didn't happen because
afs_super_ops.drop_inode was pointing to generic_delete_inode.  Now this
pointer is left set to NULL so that the default behaviour occurs instead.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Thu, 17 May 2007 04:15:18 +0000 (21:15 -0700)]
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] optimize pagefaults a little
  [IA64] Fix section conflict of ia64_mlogbuf_finish
  [IA64] s/scalibility/scalability/
  [IA64] kdump on INIT needs multi-nodes sync-up (v.2)
  [IA64] wire up {signal,timer,event}fd syscalls
  [IA64] spelling fixes: arch/ia64/

17 years agoFix ACPI suspend / device suspend ordering problem
Linus Torvalds [Wed, 16 May 2007 22:28:14 +0000 (15:28 -0700)]
Fix ACPI suspend / device suspend ordering problem

In commit e3c7db621bed4afb8e231cb005057f2feb5db557 we fixed the resume
ordering, so that the ACPI low-level resume code was called before the
actual driver resume was called. However, that broke the nesting logic
of suspend and resume, and we continued to suspend the devices _after_
we the ACPI device suspend code was called.

That resulted in us saving PCI state for devices that had already been
changed by ACPI, and in some cases disabled entirely (causing the PCI
save_state to be all-ones).  Which in turn caused the wrong state to be
written back on resume.

This moves the ACPI device suspend to after the device model per-device
suspend() calls. This fixes the bogus state save.

Thanks to Lukáš Hejtmánek for testing.

Acked-by: Lukas Hejtmanek <xhejtman@ics.muni.cz>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Len Brown <len.brown@intel.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[IA64] optimize pagefaults a little
Christoph Hellwig [Wed, 16 May 2007 12:52:19 +0000 (14:52 +0200)]
[IA64] optimize pagefaults a little

Get rid of the notifier list and call the kprobes code directly
if compiled in.  This mirrors the changes that recently went
into powerpc, s390 and sparc64.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Tony Luck <tony.luck@intel.com>
17 years ago[ALSA] usbaudio - Coping with short replies in usbmixer
Thomas Reitmayr [Tue, 15 May 2007 09:47:48 +0000 (11:47 +0200)]
[ALSA] usbaudio - Coping with short replies in usbmixer

This patch makes sure that short USB replies are treated as an
error when requesting the value of a certain mixer control.

Signed-off-by: Thomas Reitmayr <thomas@devbase.at>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
17 years ago[ALSA] Include quirks from Ubuntu Dapper/Edgy/Feisty
Daniel T Chen [Tue, 15 May 2007 09:46:23 +0000 (11:46 +0200)]
[ALSA] Include quirks from Ubuntu Dapper/Edgy/Feisty

Included is a patch against current alsa-kernel hg tip adding
quirks that Ubuntu Dapper/Edgy/Feisty contains.

Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
17 years ago[ALSA] Fix probe of non-PnP ISA devices
Rene Herman [Tue, 15 May 2007 09:42:56 +0000 (11:42 +0200)]
[ALSA] Fix probe of non-PnP ISA devices

isa_register_driver() returns an error if no device is found
and it's no fatal error for the drivers with pnp support.

Signed-off-by: Rene Herman <rene.herman@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
17 years ago[ALSA] version 1.0.14rc4
Jaroslav Kysela [Wed, 16 May 2007 09:45:47 +0000 (11:45 +0200)]
[ALSA] version 1.0.14rc4

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
17 years ago[ALSA] hda-codec - Fix ALC882/861VD codec support on some laptops
Kailang Yang [Mon, 14 May 2007 09:00:38 +0000 (11:00 +0200)]
[ALSA] hda-codec - Fix ALC882/861VD codec support on some laptops

Fixed some platform no sound and Add JD Function for below platform list:
     Sony(0x104d)  0x9015, 0x900e, 0x1f00
     Toshiba(0x1179)  DALLAS  0xff00, 0xff01
     Targa(0x1462) 0x28fb
     Asus(0x1043) A7J 0x060d
     Lenovo(0x17aa)  0x3bfd, 0x2085
     MEDION(0x17c0) MD2 0x4071

Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
17 years ago[ALSA] ASoC AC97 device reg bugfix
Liam Girdwood [Thu, 10 May 2007 17:27:27 +0000 (19:27 +0200)]
[ALSA] ASoC AC97 device reg bugfix

This patch fixes a bug whereby AC97 bus device data was being clobbered
when AC97 codecs using the generic ac97_codec.c driver were being
registered. Codecs that didn't use the generic driver were unaffected
(e.g. WM9712, WM9713).
Changes:-
 o Add new AC97 codec class for custom (or need bus dev registration)
AC97 codecs.
 o Only register/deregister this custom codec device with the AC97 bus.
The generic AC97 driver already does this for generic codec devices.
This may be related to bug #3038 :-
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3038

Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
17 years ago[ALSA] ASoC AC97 static GPL symbol fix
Liam Girdwood [Thu, 10 May 2007 15:12:31 +0000 (17:12 +0200)]
[ALSA] ASoC AC97 static GPL symbol fix

This patch fixes a bug whereby the GPL'ed symbol ac97_dai was being
declared as static.

Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
17 years ago[ALSA] hda-codec - Make the mixer capability check more robust
Takashi Iwai [Thu, 10 May 2007 14:56:09 +0000 (16:56 +0200)]
[ALSA] hda-codec - Make the mixer capability check more robust

In some cases, mixer elements return -EINVAL because it couldn't
obtain proper amp_cap bits.  The patch improves the robustness,
trying the amp_cap query again in such a case.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
17 years ago[ALSA] usb-audio: another Logitech QuickCam ID
Daniel Drake [Thu, 10 May 2007 06:52:19 +0000 (08:52 +0200)]
[ALSA] usb-audio: another Logitech QuickCam ID

This patch adds the ID for another quickcam microphone, reported by freqmod
on ALSA ticket #0003040
I'm going to submit a USB patch separately to provide a macro to simplify these
entries, as suggested by Alan Stern. We could switch to using that in future.

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
17 years agolibata: track spindown status and skip spindown_compat if possible
Tejun Heo [Tue, 15 May 2007 10:29:22 +0000 (12:29 +0200)]
libata: track spindown status and skip spindown_compat if possible

Our assumption that most distros issue STANDBYNOW seems wrong.  The
upstream sysvinit and thus many distros including gentoo and opensuse
don't take any action for libata disks on spindown.  We can skip
compat handling for these distros so that they don't need to update
anything to take advantage of kernel-side shutdown.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolibata: fix shutdown warning message printing
Tejun Heo [Mon, 14 May 2007 15:26:18 +0000 (17:26 +0200)]
libata: fix shutdown warning message printing

Unlocking ap->lock and ssleeping don't work because SCSI commands can
be issued from completion path without context.  Reimplement delayed
completion by allowing translation functions to override
qc->scsidone(), storing the original completion function to
scmd->scsi_done() and overriding qc->scsidone() with a function which
schedules delayed invocation of scmd->scsi_done().

This isn't pretty at all but all the ugly parts are thankfully
contained in the stop translation path where the compat feature is
implemented.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolibata-acpi: add ATA_FLAG_ACPI_SATA port flag
Tejun Heo [Mon, 14 May 2007 18:28:15 +0000 (03:28 +0900)]
libata-acpi: add ATA_FLAG_ACPI_SATA port flag

Whether a controller needs IDE or SATA ACPI hierarchy is determined by
the programming interface of the controller not by whether the
controller is SATA or PATA, or it supports slave device or not.  This
patch adds ATA_FLAG_ACPI_SATA port flags which tells libata-acpi that
the port needs SATA ACPI nodes, and sets the flag for ahci and
sata_sil24.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolibata: during revalidation, check n_sectors after device is configured
Tejun Heo [Mon, 14 May 2007 18:28:15 +0000 (03:28 +0900)]
libata: during revalidation, check n_sectors after device is configured

Device might be resized during ata_dev_configure() due to HPA or
(later) ACPI _GTF.  Currently it's worked around by caching n_sectors
before turning off HPA.  The cached original size is overwritten if
the device is reconfigured without being hardreset - which always
happens after configuring trasnfer mode.  If the device gets hardreset
for some reason after that, revalidation fails with -ENODEV.

This patch makes size checking more robust by moving n_sectors check
from ata_dev_reread_id() to ata_dev_revalidate() after the device is
fully configured.  No matter what happens during configuration, a
device must have the same n_sectors after fully configured to be
treated as the same device.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolibata: separate out ata_dev_reread_id()
Tejun Heo [Mon, 14 May 2007 18:28:15 +0000 (03:28 +0900)]
libata: separate out ata_dev_reread_id()

Separate out ata_dev_reread_id() from ata_dev_revalidate().
ata_dev_reread_id() reads IDENTIFY page and determines whether the
same device is still there.  ata_dev_revalidate() reconfigures after
reread completes.  This will be used by ACPI update.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopata_scc had been missed by ata_std_prereset() switch
Al Viro [Tue, 15 May 2007 07:21:17 +0000 (08:21 +0100)]
pata_scc had been missed by ata_std_prereset() switch

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years ago[SPARC64]: Add hypervisor API negotiation and fix console bugs.
David S. Miller [Wed, 16 May 2007 00:03:54 +0000 (17:03 -0700)]
[SPARC64]: Add hypervisor API negotiation and fix console bugs.

Hypervisor interfaces need to be negotiated in order to use
some API calls reliably.  So add a small set of interfaces
to request API versions and query current settings.

This allows us to fix some bugs in the hypervisor console:

1) If we can negotiate API group CORE of at least major 1
   minor 1 we can use con_read and con_write which can improve
   console performance quite a bit.

2) When we do a console write request, we should hold the
   spinlock around the whole request, not a byte at a time.
   What would happen is that it's easy for output from
   different cpus to get mixed with each other.

3) Use consistent udelay() based polling, udelay(1) each
   loop with a limit of 1000 polls to handle stuck hypervisor
   console.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoarm: walk_stacktrace() needs to be exported
Al Viro [Tue, 15 May 2007 19:37:20 +0000 (20:37 +0100)]
arm: walk_stacktrace() needs to be exported

oprofile depends on having it

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agofix uml-x86_64
Al Viro [Tue, 15 May 2007 19:36:00 +0000 (20:36 +0100)]
fix uml-x86_64

__NR_syscall_max is done in x86_64 asm-offsets; do an equivalent in
uml kern_constants.h

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoaudit_match_signal() and friends are used only if CONFIG_AUDITSYSCALL is set
Al Viro [Tue, 15 May 2007 19:37:10 +0000 (20:37 +0100)]
audit_match_signal() and friends are used only if CONFIG_AUDITSYSCALL is set

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom32r: __xchg() should be always_inline
Al Viro [Tue, 15 May 2007 19:37:00 +0000 (20:37 +0100)]
m32r: __xchg() should be always_inline

it depends on elimination of unreachable branches in switch (by object
size), so we must declare it always_inline

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agorpadlpar breakage - fallout of struct subsystem removal
Al Viro [Tue, 15 May 2007 19:36:50 +0000 (20:36 +0100)]
rpadlpar breakage - fallout of struct subsystem removal

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoem28xx and ivtv should depend on PCI
Al Viro [Tue, 15 May 2007 19:36:40 +0000 (20:36 +0100)]
em28xx and ivtv should depend on PCI

.. because video-buf.c requires PCI, and VIDEO_EM28XX selects it.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomissing includes in mlx4
Al Viro [Tue, 15 May 2007 19:36:30 +0000 (20:36 +0100)]
missing includes in mlx4

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Jeff Garzik <jeff@garzik.org>
Acked-by: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomissing dependencies for USB drivers in input
Al Viro [Tue, 15 May 2007 19:36:20 +0000 (20:36 +0100)]
missing dependencies for USB drivers in input

stuff that does select USB should depend on USB_ARCH_HAS_HCD, or we'll
end up with unbuildable configs.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomissing mm.h in fw-ohci
Al Viro [Tue, 15 May 2007 19:36:10 +0000 (20:36 +0100)]
missing mm.h in fw-ohci

need it for page_private(), not all targets have it pulled indirectly

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6
Linus Torvalds [Wed, 16 May 2007 01:50:19 +0000 (18:50 -0700)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6:
  sh64: Add .gitignore entry for syscalltab.
  sh64: generic quicklist support.
  sh64: Update cayman defconfig.
  sh64: Fixup sh-sci build.
  sh64: ppoll/pselect6() and restartable syscalls.
  sh64: dma-mapping updates.
  sh64: Fixups for the irq_regs changes.
  sh64: Wire up many new syscalls.
  spelling fixes: arch/sh64/
  sh64: ROUND_UP macro cleanup in arch/sh64/kernel/pci_sh5.c

17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6
Linus Torvalds [Wed, 16 May 2007 01:47:21 +0000 (18:47 -0700)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6:
  Use menuconfig objects: IDE
  sl82c105: Switch to ref counting API
  ide: remove ide_use_dma()
  ide: add missing validity checks for identify words 62 and 63
  ide: remove ide_dma_enable()
  sl82c105: add speedproc() method and MWDMA0/1 support
  cs5530/sc1200: add ->speedproc support
  cs5530/sc1200: DMA support cleanup
  ide: use ide_tune_dma() part #2
  cs5530/sc1200: add ->udma_filter methods
  ide: always disable DMA before tuning it
  pdc202xx_new: use ide_tune_dma()
  alim15x3: use ide_tune_dma()
  sis5513: PIO mode setup fixes
  serverworks: PIO mode setup fixes
  pdc202xx_old: rewrite mode programming code (v2)

17 years agoMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Wed, 16 May 2007 01:46:25 +0000 (18:46 -0700)]
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
  ucc_geth: eliminate max-speed, change interface-type to phy-connection-type
  smc911x: fix compilation breakage
  pasemi_mac: Fix local-mac-address parsing
  pasemi_mac: Terminate PCI ID list
  pasemi_mac: Interrupt ack fixes
  pasemi_mac: Fix register defines

17 years agox86: Fix discontigmem + non-HIGHMEM compile
Linus Torvalds [Wed, 16 May 2007 01:45:49 +0000 (18:45 -0700)]
x86: Fix discontigmem + non-HIGHMEM compile

It's not necessarily a very sane configuration, but people running "make
randconfig" noticed it wouldn't compile.  This fixes some obvious
problems in discontig.c to allow a clean compile.

Acked-by: andrew hendry <andrew.hendry@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoUse menuconfig objects: IDE
Jan Engelhardt [Tue, 15 May 2007 22:51:46 +0000 (00:51 +0200)]
Use menuconfig objects: IDE

Use menuconfigs instead of menus, so the whole menu can be disabled at once
instead of going through all options.

Signed-off-by: Jan Engelhardt <jengelh@gmx.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agosl82c105: Switch to ref counting API
Alan Cox [Tue, 15 May 2007 22:51:46 +0000 (00:51 +0200)]
sl82c105: Switch to ref counting API

Not sure how this one got missed in the great purge some time ago but it did.

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove ide_use_dma()
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:46 +0000 (00:51 +0200)]
ide: remove ide_use_dma()

ide_use_dma() duplicates a lot of ide_max_dma_mode() functionality
and as all users of ide_use_dma() were converted to use ide_tune_dma()
now it is possible to add missing checks to ide_tune_dma() and remove
ide_use_dma() completely, so do it.

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add missing validity checks for identify words 62 and 63
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:46 +0000 (00:51 +0200)]
ide: add missing validity checks for identify words 62 and 63

Check validity of identify words 62 and 63 before using them in
ide_get_mode_mask().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove ide_dma_enable()
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:46 +0000 (00:51 +0200)]
ide: remove ide_dma_enable()

* check ->speedproc return value in ide_tune_dma()
* use ide_tune_dma() in cmd64x/cs5530/sc1200/siimage/sl82c105/scc_pata drivers
* remove no longer needed ide_dma_enable()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agosl82c105: add speedproc() method and MWDMA0/1 support
Sergei Shtylyov [Tue, 15 May 2007 22:51:44 +0000 (00:51 +0200)]
sl82c105: add speedproc() method and MWDMA0/1 support

Add the speedproc() method for setting transfer modes, modify config_for_dma()
to call it and use ide_max_dma_mode() to select the best DMA mode.
Add support for the multiword DMA modes 0 and 1, using the upper half of the
'drive_data' field to store the DMA timings to program into the drive control
register when DMA is turned on for real.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agocs5530/sc1200: add ->speedproc support
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:44 +0000 (00:51 +0200)]
cs5530/sc1200: add ->speedproc support

* add {cs5530,sc1200}_tunepio() for programming PIO timings

* add {cs5530,sc1200}_tune_chipset() (->speedproc method) for setting
  transfer mode and convert {cs5530,sc1200}_config_dma() to use it

* bump driver version

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agocs5530/sc1200: DMA support cleanup
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:44 +0000 (00:51 +0200)]
cs5530/sc1200: DMA support cleanup

sc1200.c:

* remove open-coded variant of ide_dma_host_off() (== ->dma_host_off),
  it is not needed because ->dma_off_quietly calls ->dma_host_off

* use ->dma_host_on (== ide_dma_host_on() for this driver) instead of
  open-coded variant, call it from the users of sc1200_config_dma2()

  [ there is no need to call ->dma_host_on in sc1200_config_dma() because
    core code takes care of calling ->ide_dma_on on successful execution
    of ->ide_dma_check ]

* add comment about ->tuneproc interface abuse

cs5530.c/sc1200.c:

* core code takes care of calling ->dma_off_quietly before calling
  ->ide_dma_check so there is no need to call it in ->ide_dma_check methods

* bump driver version

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: use ide_tune_dma() part #2
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:43 +0000 (00:51 +0200)]
ide: use ide_tune_dma() part #2

Use ide_tune_dma() in ide-cris/it821x/pdc202xx_old/serverworks drivers.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agocs5530/sc1200: add ->udma_filter methods
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:43 +0000 (00:51 +0200)]
cs5530/sc1200: add ->udma_filter methods

CS5530/SC1200 specifies that two drives on the same cable cannot mix
UDMA/MDMA.  Add {cs5530,sc1200}_udma_filter() to handle this.  This also
makes it possible to remove open-coded best DMA mode selection and use
standard ide_use_dma()/ide_max_dma_mode() helpers.  While at it bump
version numbers.

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: always disable DMA before tuning it
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:43 +0000 (00:51 +0200)]
ide: always disable DMA before tuning it

ide_start_power_step() and set_using_dma() were missing ->dma_off_quietly
call (comment in probe_hwif() states that DMA should be always cleared before
tuning is attempted).  Fix it.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agopdc202xx_new: use ide_tune_dma()
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:43 +0000 (00:51 +0200)]
pdc202xx_new: use ide_tune_dma()

* remove code enabling IORDY and prefetch from config_chipset_for_dma(),
  as the comment states it has no real effect because these settings are
  overriden when the PIO mode is set (and for this driver ->autotune == 1
  so PIO mode is always programmed)

* use ide_tune_dma() in pdcnew_config_drive_xfer_rate() and remove no longer
  needed config_chipset_for_dma()

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoalim15x3: use ide_tune_dma()
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:43 +0000 (00:51 +0200)]
alim15x3: use ide_tune_dma()

Use ide_tune_dma() in ali15x3_config_drive_for_dma() and remove all the open
coded DMA tuning code and also config_chipset_for_dma().  Set ->atapi_dma flag
correctly in init_hwif_common_ali15x3() so ide_tune_dma() can take care of
checking if ATAPI DMA is allowed and remove open coded ATAPI DMA check from
ali15x3_config_drive_for_dma().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agosis5513: PIO mode setup fixes
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:42 +0000 (00:51 +0200)]
sis5513: PIO mode setup fixes

* limit max PIO mode to PIO4, this driver doesn't support PIO5 and attempt
  to program PIO5 by config_art_rwp_pio() could result in incorrect PIO
  timings being programmed and possibly the data corruption (for < ATA100
  family chipsets PIO0 timings were used, for ATA100 and ATA100a - the random
  content of test1 variable was used, for ATA133 - MWDMA0 timings were used)

* BUG() in sis5513_tune_chipset() if somebody tries to force unsupported PIO5,
  also cleanup this function a bit while at it

* add comment about PIO0 timings for < ATA100 family chipsets

* remove open-coded best PIO mode selection from config_art_rwp_pio(),
  it contained numerous bugs:

  - it didn't check for validity of id->eide_pio_modes and id->eide_pio_iordy
    before using them

  - it tried to found out maximum PIO mode basing on minimum IORDY cycle time
    (moreover wrong cycle times were used for PIO1/5)

  - it was overriding PIO blacklist and conservative PIO "downgrade" done
    by ide_get_best_pio_mode()

* use sis5513_tune_drive() instead of config_art_rwp_pio()
  in sis5513_config_xfer_rate() so the correct PIO mode is also set
  on drive even if the device is not IORDY/DMA capable

* config_art_rwp_pio() was always setting the best possible mode and not
  the wanted one - fix it and move ide_get_best_pio_mode() call to
  config_chipset_for_pio()

* don't use ide_find_best_mode() in config_chipset_for_pio(), it was being
  overriden by config_art_rwp_pio() for the host timings anyway + we need to
  set the same PIO mode on the device and the host

* pass correct "pio" argument (255 instead of 5) to sis5513_tune_drive() call
  in sis5513_config_xfer_rate() so the best PIO mode is set on the drive
  and not PIO4

* rename sis5513_tune_drive() to sis5513_tuneproc()
  and config_chipset_for_pio() to sis5513_tune_driver()

* bump driver version

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoserverworks: PIO mode setup fixes
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:42 +0000 (00:51 +0200)]
serverworks: PIO mode setup fixes

* limit max PIO mode to PIO4, this driver doesn't support PIO5 and attempt
  to program PIO5 by svwks_tune_chipset() could result in incorrect PIO
  timings being programmed and possibly the data corruption (it seems that
  the minimum possible values were used but I lack the datasheets to be sure)

* select best PIO mode in svwks_tune_drive() and not in svwks_tune_chipset()
  when doing PIO autotuning (pio == 255)

* don't try to tune PIO in config_chipset_for_dma() as ide_dma_enable() could
  return 1 if DMA was previously enabled (svwks_config_drive_xfer_rate()
  takes care of PIO tuning if no suitable DMA mode is found)

* remove config_chipset_for_pio() and use svwks_tune_drive() instead,
  config_chipset_for_pio() contained numerous bugs when selecting PIO mode
  (luckily it was only used for devices limited to PIO by capabilities/BIOS):

  - it didn't check for validity of id->eide_pio_modes and id->eide_pio_iordy
    before using them

  - it tried to found out maximum PIO mode basing on minimum IORDY cycle time
    (moreover wrong cycle times were used for PIO0/1/5)

  - it was overriding PIO blacklist and conservative PIO "downgrade" done
    by ide_get_best_pio_mode()

  - if the max drive PIO was PIO5 then XFER_PIO_0/XFER_PIO_SLOW was selected
    (XFER_PIO_SLOW is not supported by svwks_tune_chipset() so the result
     was the same as if using XFER_PIO_5 => wrong PIO timings were set)

  - it was overriding drive->current_speed

* bump driver version

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agopdc202xx_old: rewrite mode programming code (v2)
Bartlomiej Zolnierkiewicz [Tue, 15 May 2007 22:51:41 +0000 (00:51 +0200)]
pdc202xx_old: rewrite mode programming code (v2)

This patch is based on the documentation (I would like to thank Promise
for it) and also partially on the older vendor driver.

Rewrite mode programming code:

* disable 66MHz clock in pdc202xx_tune_chipset() so it is correctly disabled
  even if both devices on the channel are not DMA capable and after reset

* enable/disable IORDY and PREFETCH bits in pdc202xx_tune_chipset()
  as they need to be setup correctly also for PIO only devices, plus IORDY
  wasn't disabled for non-IORDY devices and PREFETCH wasn't disabled for
  ATAPI devices

* remove dead code for setting SYNC_ERDDY_EN bits from config_chipset_for_dma()
  (driver sets ->autotune to 1 so PIO modes are always programmed => lower
   nibble of register A never equals 4 => "chipset_is_set" is always true)

* enable PIO mode programming for all ATAPI devices
  (it was limited to ->media == ide_cdrom devices)

* remove extra reads of registers A/B/C, don't read register D et all

* do clearing / programming of registers A/B/C in one go
  (gets rid of extra PCI config space read/write cycle)

* set initial values of drive_conf/AP/BP/CP variables to zero
  (paranoia for the case when PCI reads fail)

* remove XFER_UDMA6 to XFER_UDMA5 remapping case - it can't happen
  (ide_rate_filter() takes care of it)

* fix XFER_MW_DMA0 timings (they were overclocked, use the official ones)

* fix bitmasks for clearing bits of register B:

  - when programming DMA mode bit 0x10 of register B was cleared which
    resulted in overclocked PIO timing setting (iff PIO0 was used)

  - when programming PIO mode bits 0x18 weren't cleared so suboptimal
    timings were used for PIO1-4 if PIO0 was previously set (bit 0x10)
    and for PIO0/3/4 if PIO1/2 was previously set (bit 0x08)

* add FIXME comment about missing locking for 66MHz clock register

Also while at it:

* remove unused defines

* do a few cosmetic / CodingStyle fixes

* bump driver version

v2:
* in pdc202xx_tune_chipset() the old content of drive configuration
  registers is used only by the debugging code so cover "drive_conf"
  PCI registers read by #if PDC202XX_DEBUG_DRIVE_INFO
  (Noticed by Sergei Shtylyov)

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoucc_geth: eliminate max-speed, change interface-type to phy-connection-type
Kim Phillips [Fri, 11 May 2007 23:25:07 +0000 (18:25 -0500)]
ucc_geth: eliminate max-speed, change interface-type to phy-connection-type

It was agreed that phy-connection-type was a better name for
the interface-type property, so this patch renames it.

Also, the max-speed property name was determined too generic,
and is therefore eliminated in favour of phy-connection-type
derivation logic.

includes corrections to copyright text.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosmc911x: fix compilation breakage
Vitaly Wool [Sun, 13 May 2007 14:42:08 +0000 (18:42 +0400)]
smc911x: fix compilation breakage

Looks like the new version of this patch has been overlooked,
so I'm resending it.

It just adapts the driver to the new IRQ API
according to what Russell has pointed out.

 drivers/net/smc911x.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

Signed-off-by: Vitaly Wool <vitalywool@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: Fix local-mac-address parsing
olof@lixom.net [Sat, 12 May 2007 19:57:46 +0000 (14:57 -0500)]
pasemi_mac: Fix local-mac-address parsing

Turns out we have an old version of firmware that stores the mac address
in 'mac-address' as a string instead of a byte array. All versions that
use local-mac-address should have it as byte array, so no need to do
string parsing for that case.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: Terminate PCI ID list
olof@lixom.net [Sat, 12 May 2007 19:57:36 +0000 (14:57 -0500)]
pasemi_mac: Terminate PCI ID list

This caused some very interesting behaviour depending on what happened to
be built at the same time. Add terminating empty entry to the list of IDs.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>