kernel/kernel-generic.git
18 years ago[SPARC64]: smp_call_function() fixups...
David S. Miller [Thu, 6 Apr 2006 23:54:33 +0000 (16:54 -0700)]
[SPARC64]: smp_call_function() fixups...

1) Take doc-book function comment from i386 implementation.
2) cacheline align call_lock, taken from powerpc
3) Need memory barrier after setting call_data
4) Remove timeout

Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[SPARC64]: Translate PTRACE_GETEVENTMSG for 32-bit tasks.
David S. Miller [Tue, 4 Apr 2006 23:54:40 +0000 (16:54 -0700)]
[SPARC64]: Translate PTRACE_GETEVENTMSG for 32-bit tasks.

Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[SPARC64]: Update defconfig.
David S. Miller [Mon, 3 Apr 2006 02:31:30 +0000 (19:31 -0700)]
[SPARC64]: Update defconfig.

Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[SPARC64]: Print out return PC in cheetah_log_errors().
David S. Miller [Sun, 2 Apr 2006 07:29:56 +0000 (23:29 -0800)]
[SPARC64]: Print out return PC in cheetah_log_errors().

This makes debugging things a little bit easier.

Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[SPARC64]: Add dummy PTRACE_PEEKUSR for gdb.
David S. Miller [Sun, 2 Apr 2006 07:28:10 +0000 (23:28 -0800)]
[SPARC64]: Add dummy PTRACE_PEEKUSR for gdb.

GDB uses a PTRACE_PEEKUSR call with offset 0 to see
if a thread is alive, so provide a success return for
this particular special case.

Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[SELINUX] Fix build after ipsec decap state changes.
Dave Jones [Mon, 3 Apr 2006 06:34:19 +0000 (23:34 -0700)]
[SELINUX] Fix build after ipsec decap state changes.

    security/selinux/xfrm.c: In function 'selinux_socket_getpeer_dgram':
    security/selinux/xfrm.c:284: error: 'struct sec_path' has no member named 'x'
    security/selinux/xfrm.c: In function 'selinux_xfrm_sock_rcv_skb':
    security/selinux/xfrm.c:317: error: 'struct sec_path' has no member named 'x'

Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMove request_standard_resources() back to before PCI probing
Linus Torvalds [Sun, 9 Apr 2006 19:14:02 +0000 (12:14 -0700)]
Move request_standard_resources() back to before PCI probing

This effectively undoes the PCI resource allocation changes done in
commit b408cbc704352eccee301e1103b23203ba1c3a0e, but leaves the cleanups
of that commit in place.

We're going back to marking the resources reported by e820 busy _before_
doing PCI probing, so that any PCI resource that clashes with the BIOS-
reported memory map will be reloacted to a non-clashing area.

The reason? Larry Finger reports that his laptop has the cardbus
controller set up by the BIOS so that it conflicts with the e820 memory
map, and needs to be relocated. See

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

for more details.

We'll have to work out how to handle the fbcon problem that caused that
commit in the first place in some other way.

Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Antonino A. Daplas <adaplas@pol.net>
Cc: <bjk@luxsci.net>
Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Update 32-bit system call table
Andi Kleen [Fri, 7 Apr 2006 17:50:34 +0000 (19:50 +0200)]
[PATCH] x86_64: Update 32-bit system call table

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Eliminate IA32_NR_syscalls define
Andi Kleen [Fri, 7 Apr 2006 17:50:31 +0000 (19:50 +0200)]
[PATCH] x86_64: Eliminate IA32_NR_syscalls define

Or rather compute it based on the table length automatically.

This also has the intended side effect of not warning for new system calls
anymore.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: fix CONFIG_REORDER
Sam Ravnborg [Fri, 7 Apr 2006 17:50:28 +0000 (19:50 +0200)]
[PATCH] x86_64: fix CONFIG_REORDER

Fix CONFIG_REORDER.

The value of cflags-y was assined to CFLAGS before cflags-y was assigned
the value used for CONFIG_REORDER.

Use cflags-y for all CFLAGS options in the Makefile to avoid this
happening again.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Plug GS leak in arch_prctl()
John Blackwood [Fri, 7 Apr 2006 17:50:25 +0000 (19:50 +0200)]
[PATCH] x86_64: Plug GS leak in arch_prctl()

In linux-2.6.16, we have noticed a problem where the gs base value
returned from an arch_prtcl(ARCH_GET_GS, ...) call will be incorrect if:

   - the current/calling task has NOT set its own gs base yet to a
     non-zero value,

   - some other task that ran on the same processor previously set their
     own gs base to a non-zero value.

In this situation, the ARCH_GET_GS code will read and return the
MSR_KERNEL_GS_BASE msr register.

However, since the __switch_to() code does NOT load/zero the
MSR_KERNEL_GS_BASE register when the task that is switched IN has a zero
next->gs value, the caller of arch_prctl(ARCH_GET_GS, ...) will get back
the value of some previous tasks's gs base value instead of 0.

    Change the arch_prctl() ARCH_GET_GS code to only read and return
    the MSR_KERNEL_GS_BASE msr register if the 'gs' register of the calling
    task is non-zero.

    Side note: Since in addition to using arch_prctl(ARCH_SET_GS, ...),
    a task can also setup a gs base value by using modify_ldt() and write
    an index value into 'gs' from user space, the patch below reads
    'gs' instead of using thread.gs, since in the modify_ldt() case,
    the thread.gs value will be 0, and incorrect value would be returned
    (the task->thread.gs value).

    When the user has not set its own gs base value and the 'gs'
    register is zero, then the MSR_KERNEL_GS_BASE register will not be
    read and a value of zero will be returned by reading and returning
    'task->thread.gs'.

    The first patch shown below is an attempt at implementing this
    approach.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386: Remove printk about reboot fixups at reboot
Andi Kleen [Fri, 7 Apr 2006 17:50:21 +0000 (19:50 +0200)]
[PATCH] i386: Remove printk about reboot fixups at reboot

Printk doesn't have any value

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Fix drift with HPET timer enabled
Jordan Hargrave [Fri, 7 Apr 2006 17:50:18 +0000 (19:50 +0200)]
[PATCH] x86_64: Fix drift with HPET timer enabled

If the HPET timer is enabled, the clock can drift by ~3 seconds a day.
This is due to the HPET timer not being initialized with the correct
setting (still using PIT count).

If HZ changes, this drift can become even more pronounced.

HPET patch initializes tick_nsec with correct tick_nsec settings for
HPET timer.

Vojtech comments:

  "It's not entirely correct (it assumes the HPET ticks totally
   exactly), but it's significantly better than assuming the PIT error
   there."

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386/x86-64: Return defined error value for bad PCI config space accesses
Andi Kleen [Fri, 7 Apr 2006 17:50:15 +0000 (19:50 +0200)]
[PATCH] i386/x86-64: Return defined error value for bad PCI config space accesses

Mostly to get better handling when a extended config space
access has to fallback to Type1.

Cc: gregkh@suse.de
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386/x86_64: Check if MCFG works for the first 16 busses
Andi Kleen [Fri, 7 Apr 2006 17:50:12 +0000 (19:50 +0200)]
[PATCH] i386/x86_64: Check if MCFG works for the first 16 busses

Previously only the first bus would be checked against Type 1.

Why 16? Checking all would need too much memory and we
can assume that systems with more than 16 busses have better than
average quality BIOS.

This is an additional defense against bad MCFG tables.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Fixup read_mostly section on internode cache line size for vSMP
Ravikiran G Thirumalai [Fri, 7 Apr 2006 17:50:09 +0000 (19:50 +0200)]
[PATCH] x86_64: Fixup read_mostly section on internode cache line size for vSMP

Fixup the read mostly section to start at internode cacheline boundary.

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Shai Fultheim <shai@scalex86.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Don't return error for HPET initialization in initcall
Andi Kleen [Fri, 7 Apr 2006 17:50:06 +0000 (19:50 +0200)]
[PATCH] x86_64: Don't return error for HPET initialization in initcall

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Don't export strlen twice
Andi Kleen [Fri, 7 Apr 2006 17:50:03 +0000 (19:50 +0200)]
[PATCH] x86_64: Don't export strlen twice

Fix

  WARNING: vmlinux: 'strlen' exported twice. Previous export was in vmlinux

Reported by Mats Johannesson

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: When user could have changed RIP always force IRET
Andi Kleen [Fri, 7 Apr 2006 17:50:00 +0000 (19:50 +0200)]
[PATCH] x86_64: When user could have changed RIP always force IRET

Intel EM64T CPUs handle uncanonical return addresses differently
from AMD CPUs.

The exception is reported in the SYSRET, not the next instruction.
This leads to the kernel exception handler running on the user stack
with the wrong GS because the kernel didn't expect exceptions
on this instruction.

This version of the patch has the teething problems that plagued an earlier
version fixed.

This is CVE-2006-0744

Thanks to Ernie Petrides and Asit B. Mallick for analysis and initial
patches.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Don't run NMI watchdog during machine checks
Andi Kleen [Fri, 7 Apr 2006 17:49:57 +0000 (19:49 +0200)]
[PATCH] x86_64: Don't run NMI watchdog during machine checks

Machine checks can stall the machine for a long time and
it's not good to trigger the nmi watchdog during that.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: extra NODES_SHIFT definition
Dave Hansen [Fri, 7 Apr 2006 17:49:54 +0000 (19:49 +0200)]
[PATCH] x86_64: extra NODES_SHIFT definition

The generic linux/numa.h file defines NODES_SHIFT to 0 in case
the architecture did not.

Every architecture which has a NUMA config option defines
NODES_SHIFT in its asm-$ARCH headers, but only if NUMA is
enabled, except for x86_64.

This should make it like all the rest.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Proper null pointer check in powernow_k8_get
Jacob Shin [Fri, 7 Apr 2006 17:49:51 +0000 (19:49 +0200)]
[PATCH] x86_64: Proper null pointer check in powernow_k8_get

This prevents crashes on dual core system when enough ticks are lost.

Replaces earlier patch by me.

Cc: Dave Jones <davej@redhat.com>
Signed-off-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Revert earlier powernow-k8 change
Andi Kleen [Fri, 7 Apr 2006 17:49:48 +0000 (19:49 +0200)]
[PATCH] x86_64: Revert earlier powernow-k8 change

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386: Consolidate modern APIC handling
Andi Kleen [Fri, 7 Apr 2006 17:49:45 +0000 (19:49 +0200)]
[PATCH] i386: Consolidate modern APIC handling

AMD systems have a modern APIC that supports 8 bit IDs, but
don't have a XAPIC version number.  Add a new "modern_apic"
subfunction that handles this correctly and use it (nearly)
everywhere where XAPIC is tested for.

I removed one wart: the code specified that external APICs
would use an 8bit APIC ID. But I checked a real 82093 data sheet
and it says clearly that they only use 4bit. So I removed
this special case since it would a bit awkward to implement now.

I removed the valid APIC tests in mptable parsing completely. On any modern
system they only check against the full field width (8bit) anyways
and are no-ops. This also fixes them doing the wrong thing
on >8 core Opterons.

This makes i386 boot again on 16 core Opterons.

Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Clear APIC feature bit when local APIC is disabled
Andi Kleen [Fri, 7 Apr 2006 17:49:42 +0000 (19:49 +0200)]
[PATCH] x86_64: Clear APIC feature bit when local APIC is disabled

Needed for other checks later in ACPI.

Pointed out by Len Brown

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86-64/i386: Don't process APICs/IO-APICs in ACPI when APIC is disabled.
Andi Kleen [Fri, 7 Apr 2006 17:49:39 +0000 (19:49 +0200)]
[PATCH] x86-64/i386: Don't process APICs/IO-APICs in ACPI when APIC is disabled.

When nolapic was passed or the local APIC was disabled
for another reason ACPI would still parse the IO-APICs
until these were explicitely disabled with noapic.

Usually this resulted in a non booting configuration unless
"nolapic noapic" was used.

I also disabled the local APIC parsing in this case, although
that's only cosmetic (suppresses a few printks)

This hopefully makes nolapic work in all cases.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Don't sanity check Type 1 PCI bus access on newer systems
Andi Kleen [Fri, 7 Apr 2006 17:49:36 +0000 (19:49 +0200)]
[PATCH] x86_64: Don't sanity check Type 1 PCI bus access on newer systems

Horus systems don't have anything on bus 0 which makes
the Type 1 sanity checks fail.  Use the DMI BIOS year to
check for newer systems and always assume Type 1 works on them.
I used 2001 as an pretty arbitary cutoff year.

Cc: gregkh@suse.de
Cc: Navin Boppuri <navin.boppuri@newisys.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Fix compilation with CONFIG_PCI=n / allnoconfig
Andi Kleen [Fri, 7 Apr 2006 17:49:33 +0000 (19:49 +0200)]
[PATCH] x86_64: Fix compilation with CONFIG_PCI=n / allnoconfig

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386/x86-64: Check that MCFG points to an e820 reserved area
Arjan van de Ven [Fri, 7 Apr 2006 17:49:30 +0000 (19:49 +0200)]
[PATCH] i386/x86-64: Check that MCFG points to an e820 reserved area

This patch introduces a user for the e820_all_mapped function:

There have been several machines that don't have a working MMCONFIG,
often because of a buggy MCFG table in the ACPI bios.  This patch adds a
simple sanity check that detects a whole bunch of these cases, and when
it detects it, linux now boots rather than crash-and-burns.

The accuracy of this detection can in principle be improved if there was
a "is this entire range in e820 with THIS attribute", but no such
function exist and the complexity needed for this is not really worth
it; this simple check already catches most cases anyway.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Introduce e820_all_mapped
Arjan van de Ven [Fri, 7 Apr 2006 17:49:27 +0000 (19:49 +0200)]
[PATCH] x86_64: Introduce e820_all_mapped

Introduce a e820_all_mapped() function which checks if the entire range
<start,end> is mapped with type.

This is done by moving the local start variable to the end of each
known-good region; if at the end of the function the start address is
still before end, there must be a part that's not of the correct type;
otherwise it's a good region.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Rename e820_mapped to e820_any_mapped
Arjan van de Ven [Fri, 7 Apr 2006 17:49:24 +0000 (19:49 +0200)]
[PATCH] x86_64: Rename e820_mapped to e820_any_mapped

Rename e820_mapped to e820_any_mapped since it tests if any part of the
range is mapped according to the type.

Later steps will introduce e820_all_mapped which will check if the
entire range is mapped with the type.  Both have their merit.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Handle empty PXMs that only contain hotplug memory
Andi Kleen [Fri, 7 Apr 2006 17:49:21 +0000 (19:49 +0200)]
[PATCH] x86_64: Handle empty PXMs that only contain hotplug memory

The node setup code would try to allocate the node metadata in the node
itself, but that fails if there is no memory in there.

This can happen with memory hotplug when the hotplug area defines an so
far empty node.

Now use bootmem to try to allocate the mem_map in other nodes.

And if it fails don't panic, but just ignore the node.

To make this work I added a new __alloc_bootmem_nopanic function that
does what its name implies.

TBD should try to use nearby nodes here.  Currently we just use any.
It's hard to do it better because bootmem doesn't have proper fallback
lists yet.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Reserve SRAT hotadd memory on x86-64
Andi Kleen [Fri, 7 Apr 2006 17:49:18 +0000 (19:49 +0200)]
[PATCH] x86_64: Reserve SRAT hotadd memory on x86-64

From: Keith Mannthey, Andi Kleen

Implement memory hotadd without sparsemem. The memory in the SRAT
hotadd area is just preserved instead and can be activated later.

There are a few restrictions:
- Only one continuous hotadd area allowed per node

The main problem is dealing with the many buggy SRAT tables
that are out there. The strategy here is to reject anything
suspicious.

Originally from Keith Mannthey, with several hacks and changes by AK
and also contributions from Andrew Morton

[ TBD: Problems pointed out by KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>:

 1) Goto's rebuild_zonelist patch will not work if CONFIG_MEMORY_HOTPLUG=n.

    Rebuilding zonelist is necessary when the system has just memory <
    4G at boot, and hot add memory > 4G.  because x86_64 has DMA32,
    ZONE_NORAML is not included into zonelist at boot time if system
    doesn't have memory >4G at boot.

    [AK: should just force the higher zones at boot time when SRAT tells us]

 2) zone and node's spanned_pages and present_pages are not incremented.
    They should be.

    For example, our server (ia64/Fujitsu PrimeQuest) can equip memory
    from 4G to 1T(maybe 2T in future), and SRAT will *always* say we have
    possible 1T +memory.  (Microsoft requires "write all possible memory
    in SRAT") When we reserve memmap for possible 1T memory, Linux will
    not work well in +minimum 4G configuraion ;)

    [AK: needs limiting to 5-10% of max memory]
 ]

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Support memory hotadd without sparsemem
Andi Kleen [Fri, 7 Apr 2006 17:49:15 +0000 (19:49 +0200)]
[PATCH] x86_64: Support memory hotadd without sparsemem

Memory hotadd doesn't need SPARSEMEM, but can be handled by just preallocating
mem_maps. This only needs some untangling of ifdefs to enable the necessary
code even without SPARSEMEM.

Originally from Keith Mannthey, hacked by AK.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Clean up execve path
Andi Kleen [Fri, 7 Apr 2006 17:49:12 +0000 (19:49 +0200)]
[PATCH] x86_64: Clean up execve path

Just call IRET always, no need for any special cases.

Needed for the next bug fix.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Update defconfig
Andi Kleen [Fri, 7 Apr 2006 17:49:09 +0000 (19:49 +0200)]
[PATCH] x86_64: Update defconfig

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoLinux v2.6.17-rc1
Linus Torvalds [Mon, 3 Apr 2006 03:22:10 +0000 (20:22 -0700)]
Linux v2.6.17-rc1

Close of the merge window..

18 years agoUpdate dummy snd_power_wait() function for new calling convention
Linus Torvalds [Sun, 2 Apr 2006 21:37:36 +0000 (14:37 -0700)]
Update dummy snd_power_wait() function for new calling convention

Apparently nobody had tried to compile the ALSA CVS tree without power
management enabled.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge branch 'splice' of git://brick.kernel.dk/data/git/linux-2.6-block
Linus Torvalds [Sun, 2 Apr 2006 21:22:06 +0000 (14:22 -0700)]
Merge branch 'splice' of git://brick.kernel.dk/data/git/linux-2.6-block

* 'splice' of git://brick.kernel.dk/data/git/linux-2.6-block:
  [PATCH] splice: fix page stealing LRU handling.
  [PATCH] splice: page stealing needs to wait_on_page_writeback()
  [PATCH] splice: export generic_splice_sendpage
  [PATCH] splice: add a SPLICE_F_MORE flag
  [PATCH] splice: add comments documenting more of the code
  [PATCH] splice: improve writeback and clean up page stealing
  [PATCH] splice: fix shadow[] filling logic

18 years ago[PATCH] splice: fix page stealing LRU handling.
Jens Axboe [Sun, 2 Apr 2006 21:11:04 +0000 (23:11 +0200)]
[PATCH] splice: fix page stealing LRU handling.

Originally from Nick Piggin, just adapted to the newer branch.

You can't check PageLRU without holding zone->lru_lock.  The page
release code can get away with it only because the page refcount is 0 at
that point. Also, you can't reliably remove pages from the LRU unless
the refcount is 0. Ever.

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Jens Axboe <axboe@suse.de>
18 years ago[PATCH] splice: page stealing needs to wait_on_page_writeback()
Jens Axboe [Sun, 2 Apr 2006 21:10:32 +0000 (23:10 +0200)]
[PATCH] splice: page stealing needs to wait_on_page_writeback()

Thanks to Andrew for the good explanation of why this is so. akpm writes:

If a page is under writeback and we remove it from pagecache, it's still
going to get written to disk.  But the VFS no longer knows about that page,
nor that this page is about to modify disk blocks.

So there might be scenarios in which those
blocks-which-are-about-to-be-written-to get reused for something else.
When writeback completes, it'll scribble on those blocks.

This won't happen in ext2/ext3-style filesystems in normal mode because the
page has buffers and try_to_release_page() will fail.

But ext2 in nobh mode doesn't attach buffers at all - it just sticks the
page in a BIO, finds some new blocks, points the BIO at those blocks and
lets it rip.

While that write IO's in flight, someone could truncate the file.  Truncate
won't block on the writeout because the page isn't in pagecache any more.
So truncate will the free the blocks from the file under the page's feet.
Then something else can reallocate those blocks.  Then write data to them.

Now, the original write completes, corrupting the filesystem.

Signed-off-by: Jens Axboe <axboe@suse.de>
18 years ago[PATCH] splice: export generic_splice_sendpage
Jens Axboe [Sun, 2 Apr 2006 21:06:05 +0000 (23:06 +0200)]
[PATCH] splice: export generic_splice_sendpage

Forgot that one, thanks Jeff. Also move the other EXPORT_SYMBOL
to right below the functions.

Signed-off-by: Jens Axboe <axboe@suse.de>
18 years ago[PATCH] splice: add a SPLICE_F_MORE flag
Jens Axboe [Sun, 2 Apr 2006 21:05:41 +0000 (23:05 +0200)]
[PATCH] splice: add a SPLICE_F_MORE flag

This lets userspace indicate whether more data will be coming in a
subsequent splice call.

Signed-off-by: Jens Axboe <axboe@suse.de>
18 years ago[PATCH] splice: add comments documenting more of the code
Jens Axboe [Sun, 2 Apr 2006 21:05:09 +0000 (23:05 +0200)]
[PATCH] splice: add comments documenting more of the code

Hopefully this will make Andrew a little more happy.

Signed-off-by: Jens Axboe <axboe@suse.de>
18 years ago[PATCH] splice: improve writeback and clean up page stealing
Jens Axboe [Sun, 2 Apr 2006 21:04:46 +0000 (23:04 +0200)]
[PATCH] splice: improve writeback and clean up page stealing

By cleaning up the writeback logic (killing write_one_page() and the manual
set_page_dirty()), we can get rid of ->stolen inside the pipe_buffer and
just keep it local in pipe_to_file().

This also adds dirty page balancing logic and O_SYNC handling.

Signed-off-by: Jens Axboe <axboe@suse.de>
18 years ago[PATCH] splice: fix shadow[] filling logic
Jens Axboe [Sun, 2 Apr 2006 21:04:21 +0000 (23:04 +0200)]
[PATCH] splice: fix shadow[] filling logic

Clear the entire range, and don't increment pidx or we keep filling
the same position again and again.

Thanks to KAMEZAWA Hiroyuki.

Signed-off-by: Jens Axboe <axboe@suse.de>
18 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Sun, 2 Apr 2006 20:34:00 +0000 (13:34 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm: (27 commits)
  [ARM] 3433/1: ARM: OMAP: 8/8 Update board files
  [ARM] 3455/1: ARM: OMAP: 7/8 Misc updates, take 2
  [ARM] 3454/1: ARM: OMAP: 6/8 Update framebuffer low-level init code, take 2
  [ARM] 3430/1: ARM: OMAP: 5/8 Update PM
  [ARM] 3429/1: ARM: OMAP: 4/8 Update GPIO
  [ARM] 3428/1: ARM: OMAP: 3/8 Update pin multiplexing
  [ARM] 3427/1: ARM: OMAP: 2/8 Update timers
  [ARM] 3426/1: ARM: OMAP: 1/8 Update clock framework
  [ARM] 3396/2: AT91RM9200 Platform devices update
  [ARM] 3395/2: AT91RM9200 Dataflash Card vs MMC selection
  [ARM] 3393/2: AT91RM9200 LED support
  [ARM] 3453/1: Poodle: Correctly set the memory size
  [ARM] 3446/1: i.MX: MMC/SD SDHC controller registration for i.MX/MX1 MX1ADS board
  [ARM] 3444/1: i.MX: Scatter-gather DMA emulation for i.MX/MX1
  [ARM] 3451/1: ep93xx: use the m48t86 rtc driver on the ts72xx platform
  [ARM] 3450/1: ep93xx: use the ep93xx rtc driver
  [ARM] 3452/1: [S3C2410] RX3715 - add nand information
  [ARM] 3449/1: [S3C2410] Anubis - fix NAND timings
  [ARM] 3448/1: [S3C2410] Settle delay when _enabling_ USB PLL
  [ARM] 3442/1: [S3C2410] SMDK: NAND device setup
  ...

18 years agoMerge master.kernel.org:/home/rmk/linux-2.6-mmc
Linus Torvalds [Sun, 2 Apr 2006 20:32:55 +0000 (13:32 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-mmc

* master.kernel.org:/home/rmk/linux-2.6-mmc:
  [ARM] 3457/1: i.MX: SD/MMC support for i.MX/MX1
  [ARM] 3456/1: AT91RM9200 support for 2.6 (MMC/SD driver)

18 years agoMerge git://oss.sgi.com:8090/oss/git/xfs-2.6
Linus Torvalds [Sun, 2 Apr 2006 20:11:25 +0000 (13:11 -0700)]
Merge git://oss.sgi.com:8090/oss/git/xfs-2.6

* git://oss.sgi.com:8090/oss/git/xfs-2.6:
  [XFS] Provide XFS support for the splice syscall.
  [XFS] Reenable write barriers by default.
  [XFS] Make project quota enforcement return an error code consistent with
  [XFS] Implement the silent parameter to fill_super, previously ignored.
  [XFS] Cleanup comment to remove reference to obsoleted function

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
Linus Torvalds [Sun, 2 Apr 2006 20:08:49 +0000 (13:08 -0700)]
Merge /pub/scm/linux/kernel/git/perex/alsa

* master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa: (28 commits)
  [ALSA] Kconfig SND_SEQUENCER_OSS help text fix
  [ALSA] Add Aux input switch control for Aureon Universe
  [ALSA] pcxhr - Fix the crash with REV01 board
  [ALSA] sound/pci/hda: use create_singlethread_workqueue()
  [ALSA] hda-intel - Add support of ATI SB600
  [ALSA] cs4281 - Fix the check of timeout in probe
  [ALSA] cs4281 - Fix the check of right channel
  [ALSA] Test volume resolution of usb audio at initialization
  [ALSA] maestro3.c: fix BUG, optimization
  [ALSA] HDA/Realtek: multiple input mux definitions and pin mode additions
  [ALSA] AdLib FM card driver
  [ALSA] Fix / clean up PCM-OSS setup hooks
  [ALSA] Clean up PCM codes (take 2)
  [ALSA] Tiny clean up of PCM codes
  [ALSA] ISA drivers bailing on first !enable[i]
  [ALSA] Remove obsolete kfree_nocheck call
  [ALSA] Remove obsolete kfree_nocheck call
  [ALSA] Add snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards
  [ALSA] Add snd-riptide driver for Conexant Riptide chip
  [ALSA] hda-codec - Fix noisy output wtih AD1986A 3stack model
  ...

18 years ago[PATCH] sysfs: zero terminate sysfs write buffers
Greg Kroah-Hartman [Fri, 31 Mar 2006 23:37:06 +0000 (15:37 -0800)]
[PATCH] sysfs: zero terminate sysfs write buffers

No one should be writing a PAGE_SIZE worth of data to a normal sysfs
file, so properly terminate the buffer.

Thanks to Al Viro for pointing out my supidity here.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] revert incorrect mutex conversion in hdaps driver
Arjan van de Ven [Sun, 2 Apr 2006 17:24:57 +0000 (19:24 +0200)]
[PATCH] revert incorrect mutex conversion in hdaps driver

This reverts the mutex conversion that was recently done to the hdaps
driver; this coversion was buggy because the hdaps driver started using
this semaphore in IRQ context, which mutexes do not allow.  Easiest
solution for now is to just revert the patch (the patch was part of a
bigger GIT commit, 9a61bf6300533d3b64d7ff29adfec00e596de67d but this
only reverts this one file)

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
Linus Torvalds [Sun, 2 Apr 2006 20:01:11 +0000 (13:01 -0700)]
Merge /linux/kernel/git/wim/linux-2.6-watchdog

* master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
  [WATCHDOG] at91_wdt.c - Atmel AT91RM9200 watchdog driver
  [WATCHDOG] pcwd_usb.c: fix a NULL pointer dereference
  [WATCHDOG] pcwd.c sprintf/strcpy fix
  [WATCHDOG] pcwd.c general clean-up after patches
  [WATCHDOG] pcwd.c add debug info
  [WATCHDOG] pcwd.c pcwd_cleanup_module patch
  [WATCHDOG] pcwd.c firmware-info patch
  [WATCHDOG] pcwd.c control status patch

18 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
Linus Torvalds [Sun, 2 Apr 2006 19:58:45 +0000 (12:58 -0700)]
Merge git://git./linux/kernel/git/bunk/trivial

* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (48 commits)
  Documentation: fix minor kernel-doc warnings
  BUG_ON() Conversion in drivers/net/
  BUG_ON() Conversion in drivers/s390/net/lcs.c
  BUG_ON() Conversion in mm/slab.c
  BUG_ON() Conversion in mm/highmem.c
  BUG_ON() Conversion in kernel/signal.c
  BUG_ON() Conversion in kernel/signal.c
  BUG_ON() Conversion in kernel/ptrace.c
  BUG_ON() Conversion in ipc/shm.c
  BUG_ON() Conversion in fs/freevxfs/
  BUG_ON() Conversion in fs/udf/
  BUG_ON() Conversion in fs/sysv/
  BUG_ON() Conversion in fs/inode.c
  BUG_ON() Conversion in fs/fcntl.c
  BUG_ON() Conversion in fs/dquot.c
  BUG_ON() Conversion in md/raid10.c
  BUG_ON() Conversion in md/raid6main.c
  BUG_ON() Conversion in md/raid5.c
  Fix minor documentation typo
  BFP->BPF in Documentation/networking/tuntap.txt
  ...

18 years ago[PATCH] sbp2: fix spinlock recursion
Stefan Richter [Sat, 1 Apr 2006 19:11:41 +0000 (21:11 +0200)]
[PATCH] sbp2: fix spinlock recursion

sbp2util_mark_command_completed takes a lock which was already taken by
sbp2scsi_complete_all_commands.  This is a regression in Linux 2.6.15.

 Reported by Kristian Harms at
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=187394

[ More complete commentary, as response to questions by Andrew: ]

> This changes the call environment for all implementations of
> ->Current_done().  Are they all safe to call under this lock?

Short answer: Yes, trust me.  ;-) Long answer:

The done() callbacks are passed on to sbp2 from the SCSI stack along
with each SCSI command via the queuecommand hook.  The done() callback
is safe to call in atomic context.  So does
Documentation/scsi/scsi_mid_low_api.txt say, and many if not all SCSI
low-level handlers rely on this fact.  So whatever this callback does,
it is "self-contained" and it won't conflict with sbp2's internal ORB
list handling.  In particular, it won't race with the
sbp2_command_orb_lock.

Moreover, sbp2 already calls the done() handler with
sbp2_command_orb_lock taken in sbp2scsi_complete_all_commands().  I
admit this is ultimately no proof of correctness, especially since this
portion of code introduced the spinlock recursion in the first place and
we didn't realize it since this code's submission before 2.6.15 until
now.  (I have learned a lesson from this.)

I stress-tested my patch on x86 uniprocessor with a preemptible SMP
kernel (alas I have no SMP machine yet) and made sure that all code
paths which involve the sbp2_command_orb_lock were gone through multiple
times.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
Linus Torvalds [Sun, 2 Apr 2006 19:53:57 +0000 (12:53 -0700)]
Merge /pub/scm/linux/kernel/git/mchehab/v4l-dvb

* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (49 commits)
  V4L/DVB (3667b): cpia2: fix function prototype
  V4L/DVB (3702): Make msp3400 routing defines more consistent
  V4L/DVB (3700): Remove obsolete commands from tvp5150.c
  V4L/DVB (3697): More msp3400 and bttv fixes
  V4L/DVB (3696): Previous change for cx2341X boards broke the remote support
  V4L/DVB (3693): Fix msp3400c and bttv stereo/mono/bilingual detection/handling
  V4L/DVB (3692): Keep experimental SLICED_VBI defines under an #if 0
  V4L/DVB (3689): Kconfig: fix VP-3054 Secondary I2C Bus build configuration menu dependencies
  V4L/DVB (3673): Fix budget-av CAM reset
  V4L/DVB (3672): Fix memory leak in dvr open
  V4L/DVB (3671): New module parameter 'tv_standard' (dvb-ttpci driver)
  V4L/DVB (3670): Fix typo in comment
  V4L/DVB (3669): Configurable dma buffer size for saa7146-based budget dvb cards
  V4L/DVB (3653h): Move usb v4l docs into Documentation/video4linux
  V4L/DVB (3667a): Fix SAP + stereo mode at msp3400
  V4L/DVB (3666): Remove trailing newlines
  V4L/DVB (3665): Add new NEC uPD64031A and uPD64083 i2c drivers
  V4L/DVB (3663): Fix msp3400c wait time and better audio mode fallbacks
  V4L/DVB (3662): Don't set msp3400c-non-existent register
  V4L/DVB (3661): Add wm8739 stereo audio ADC i2c driver
  ...

18 years agoMerge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
Linus Torvalds [Sun, 2 Apr 2006 19:51:22 +0000 (12:51 -0700)]
Merge branch 'for-linus' of /linux/kernel/git/roland/infiniband

* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
  IB/ipath: kbuild infrastructure
  IB/ipath: infiniband verbs support
  IB/ipath: misc infiniband code, part 2
  IB/ipath: misc infiniband code, part 1
  IB/ipath: infiniband RC protocol support
  IB/ipath: infiniband UC and UD protocol support
  IB/ipath: infiniband header files
  IB/ipath: layering interfaces used by higher-level driver code
  IB/ipath: support for userspace apps using core driver
  IB/ipath: sysfs and ipathfs support for core driver
  IB/ipath: misc driver support code
  IB/ipath: chip initialisation code, and diag support
  IB/ipath: support for PCI Express devices
  IB/ipath: support for HyperTransport devices
  IB/ipath: core driver header files
  IB/ipath: core device driver

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
Linus Torvalds [Sun, 2 Apr 2006 19:49:59 +0000 (12:49 -0700)]
Merge /pub/scm/linux/kernel/git/brodo/pcmcia-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (33 commits)
  [PATCH] pcmcia: declare pccard_iodyn_ops (fix m8xx_pcmcia.c compilation error)
  [PATCH] pcmcia: fix pcmcia_device_remove oops
  [PATCH] pcmcia: Add support for Possio GCC AKA PCMCIA Siemens MC45
  [PATCH] pcmcia: pseudo device handling update
  [PATCH] pcmcia: convert DEV_OK to pcmcia_dev_present
  [PATCH] pcmcia: use bitfield instead of p_state and state
  [PATCH] pcmcia: remove unused p_dev->state flags
  [PATCH] pcmcia: make pcmcia_release_{io,irq} static
  [PATCH] pcmcia: add return value to _config() functions
  [PATCH] pcmcia: remove dev_link_t and client_handle_t indirection
  [PATCH] pcmcia: embed dev_link_t into struct pcmcia_device
  [PATCH] pcmcia: rename pcmcia_device.state
  [PATCH] pcmcia: remove unneeded Vcc pseudo setting
  [PATCH] pcmcia: remove export of pcmcia_release_configuration
  [PATCH] pcmcia: default suspend and resume handling
  [PATCH] pcmcia: convert remaining users of pcmcia_release_io and _irq
  [PATCH] pcmcia: add pcmcia_disable_device
  [PATCH] serial_cs: add Merlin U630 IDs
  [PATCH] pcmcia: AT91RM9200 Compact Flash driver
  [PATCH] pcmcia: socket.functions starts with 1
  ...

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input
Linus Torvalds [Sun, 2 Apr 2006 19:49:19 +0000 (12:49 -0700)]
Merge /pub/scm/linux/kernel/git/dtor/input

* master.kernel.org:/pub/scm/linux/kernel/git/dtor/input: (26 commits)
  Input: add support for Braille devices
  Input: synaptics - limit rate to 40pps on Toshiba Protege M300
  Input: gamecon - add SNES mouse support
  Input: make modalias code respect allowed buffer size
  Input: convert /proc handling to seq_file
  Input: limit attributes' output to PAGE_SIZE
  Input: gameport - fix memory leak
  Input: serio - fix memory leak
  Input: zaurus keyboard driver updates
  Input: i8042 - fix logic around pnp_register_driver()
  Input: ns558 - fix logic around pnp_register_driver()
  Input: pcspkr - separate device and driver registration
  Input: atkbd - allow disabling on X86_PC (if EMBEDDED)
  Input: atkbd - disable softrepeat for dumb keyboards
  Input: atkbd - fix complaints about 'releasing unknown key 0x7f'
  Input: HID - fix duplicate key mapping for Logitech UltraX remote
  Input: use kzalloc() throughout the code
  Input: fix input_free_device() implementation
  Input: initialize serio and gameport at subsystem level
  Input: uinput - semaphore to mutex conversion
  ...

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Sun, 2 Apr 2006 19:48:36 +0000 (12:48 -0700)]
Merge /pub/scm/linux/kernel/git/paulus/powerpc

* master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc:
  [PATCH] powerpc: iSeries needs slb_initialize to be called
  powerpc: hook up the splice syscall
  [PATCH] powerpc/cell: compile fixes
  [PATCH] powerpc: trivial spelling fixes in fault.c
  [PATCH] powerpc/pseries: EEH Cleanup
  [PATCH] powerpc/pseries: misc lparcfg fixes
  [PATCH] powerpc/pseries: fix device name printing, again.
  [PATCH] powerpc: Extends HCALL interface for InfiniBand usage
  [PATCH] powerpc/pseries: Change H_StudlyCaps to H_SHOUTING_CAPS
  [PATCH] powerpc/pseries: print message if EEH recovery fails
  [PATCH] powerpc/pseries: mutex lock to serialize EEH event processing
  powerpc: converted embedded platforms to use new define_machine support
  powerpc: merge machine_check_exception between ppc32 & ppc64

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Sun, 2 Apr 2006 19:48:07 +0000 (12:48 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC]: Wire up sys_sync_file_range() into syscall tables.
  [SPARC]: Wire up sys_splice() into the syscall tables.
  [SPARC64]: Update defconfig.
  [SPARC64]: Align address in huge_pte_alloc().
  [SPARC64]: Document the instruction checks we do in do_sparc64_fault().
  [SPARC64]: Make tsb_sync() mm comparison more precise.

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sun, 2 Apr 2006 19:47:12 +0000 (12:47 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [NET]: Fully fix the memory leaks in sys_accept().
  [NETFILTER]: iptables 32bit compat layer
  [NETFILTER]: {ip,nf}_conntrack_netlink: fix expectation notifier unregistration
  [NETFILTER]: fix ifdef for connmark support in nf_conntrack_netlink
  [NETFILTER]: x_tables: unify IPv4/IPv6 multiport match
  [NETFILTER]: x_tables: unify IPv4/IPv6 esp match
  [NET]: Fix dentry leak in sys_accept().
  [IPSEC]: Kill unused decap state structure
  [IPSEC]: Kill unused decap state argument
  [NET]: com90xx kmalloc fix
  [TG3]: Update driver version and reldate.
  [TG3]: Revert "Speed up SRAM access"

18 years agosplice: add SPLICE_F_NONBLOCK flag
Linus Torvalds [Sun, 2 Apr 2006 19:46:35 +0000 (12:46 -0700)]
splice: add SPLICE_F_NONBLOCK flag

It doesn't make the splice itself necessarily nonblocking (because the
actual file descriptors that are spliced from/to may block unless they
have the O_NONBLOCK flag set), but it makes the splice pipe operations
nonblocking.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[ARM] 3457/1: i.MX: SD/MMC support for i.MX/MX1
Pavel Pisa [Sun, 2 Apr 2006 18:27:07 +0000 (19:27 +0100)]
[ARM] 3457/1: i.MX: SD/MMC support for i.MX/MX1

Patch from Pavel Pisa

This patch adds support of i.MX/MX1 SD/MMC controller.
It has been significantly redesigned from the original Sascha Hauer's
version to support scatter-gather DMA, to conform to latest Pierre Ossman's
and Russell King's MMC-SD Linux 2.6.x infrastructure.
The handling of all events has been moved to the softirq context
and is designed with no busy-looping in mind. Unfortunately
some controller bugs has to be overcome by limited looping
about 2-20 usec but these are observed only for initial card
recognition phase.

There are still some missing/missed IRQs problems under heavy load.
Help of somebody with access to the full SDHC design information
is probably necessary.

Regenerated against 2.6.16-git-060402 to solve clash with other patches.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3456/1: AT91RM9200 support for 2.6 (MMC/SD driver)
Andrew Victor [Sun, 2 Apr 2006 18:18:51 +0000 (19:18 +0100)]
[ARM] 3456/1: AT91RM9200 support for 2.6 (MMC/SD driver)

Patch from Andrew Victor

This patch adds support for the MMC/SD card interface on the Atmel
AT91RM9200 processor.

Original driver was by Nick Randell, but a number of people have
subsequently worked on it. It's currently maintained by Malcolm Noyes.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years agoppc64: actually add sys_splice() to the system call table
Linus Torvalds [Sun, 2 Apr 2006 17:44:36 +0000 (10:44 -0700)]
ppc64: actually add sys_splice() to the system call table

(We'd only added the number, which meant that actually trying
to use splice just went off into la-la-land)

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[WATCHDOG] at91_wdt.c - Atmel AT91RM9200 watchdog driver
Andrew Victor [Tue, 14 Mar 2006 09:11:04 +0000 (11:11 +0200)]
[WATCHDOG] at91_wdt.c - Atmel AT91RM9200 watchdog driver

Watchdog driver for the Atmel AT91RM9200 processor.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@osdl.org>
18 years ago[WATCHDOG] pcwd_usb.c: fix a NULL pointer dereference
Adrian Bunk [Fri, 10 Mar 2006 18:04:38 +0000 (19:04 +0100)]
[WATCHDOG] pcwd_usb.c: fix a NULL pointer dereference

The Coverity checker noted that this resulted in a NULL pointer
reference if we were coming from

        if (usb_pcwd == NULL) {
                printk(KERN_ERR PFX "Out of memory\n");
                    goto error;
        }

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@osdl.org>
18 years ago[WATCHDOG] pcwd.c sprintf/strcpy fix
Wim Van Sebroeck [Thu, 2 Mar 2006 19:05:16 +0000 (20:05 +0100)]
[WATCHDOG] pcwd.c sprintf/strcpy fix

change sprintf(pcwd_private.fw_ver_str, "ERROR");
to strcpy... as pointed out by Andrew Morton.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@osdl.org>
18 years ago[WATCHDOG] pcwd.c general clean-up after patches
Wim Van Sebroeck [Sun, 12 Feb 2006 16:44:57 +0000 (17:44 +0100)]
[WATCHDOG] pcwd.c general clean-up after patches

removal of includes (since we don't use kmalloc and
TASK_INTERRUPTABLE anymore).
Addition of missing commands.
Printk that lets the user know when the module was
unloaded.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
18 years ago[WATCHDOG] pcwd.c add debug info
Wim Van Sebroeck [Sun, 12 Feb 2006 16:12:55 +0000 (17:12 +0100)]
[WATCHDOG] pcwd.c add debug info

Add debugging info for the pcwd.c module.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
18 years ago[WATCHDOG] pcwd.c pcwd_cleanup_module patch
Wim Van Sebroeck [Sun, 12 Feb 2006 15:51:34 +0000 (16:51 +0100)]
[WATCHDOG] pcwd.c pcwd_cleanup_module patch

static void pcwd_cleanup_module doesn't need a return;

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
18 years ago[ARM] 3433/1: ARM: OMAP: 8/8 Update board files
Tony Lindgren [Sun, 2 Apr 2006 16:46:30 +0000 (17:46 +0100)]
[ARM] 3433/1: ARM: OMAP: 8/8 Update board files

Patch from Tony Lindgren

This patch syncs OMAP board support with linux-omap tree.
The highlights of the patch are:
- Add support for Nokia 770 by Juha Yrjola
- Add support for Samsung Apollon by Kyungmin Park
- Add support for Amstrad E3 videophone by Jonathan McDowell
- Remove board-netstar.c board support as requested by Ladislav Michl
- Do platform_device registration in board files by Komal Shah et al.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3455/1: ARM: OMAP: 7/8 Misc updates, take 2
Tony Lindgren [Sun, 2 Apr 2006 16:46:27 +0000 (17:46 +0100)]
[ARM] 3455/1: ARM: OMAP: 7/8 Misc updates, take 2

Patch from Tony Lindgren

Update misc OMAP core code from linux-omap tree:

- McBSP updates by Samuel Ortiz, Andrzej Zaborowski
- Whitespace cleanups by Ladislav Michl
- Other fixes by various linux-omap developers

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3454/1: ARM: OMAP: 6/8 Update framebuffer low-level init code, take 2
Tony Lindgren [Sun, 2 Apr 2006 16:46:26 +0000 (17:46 +0100)]
[ARM] 3454/1: ARM: OMAP: 6/8 Update framebuffer low-level init code, take 2

Patch from Tony Lindgren

Update OMAP framebuffer low-level init code from linux-omap tree
by Imre Deak.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3430/1: ARM: OMAP: 5/8 Update PM
Tony Lindgren [Sun, 2 Apr 2006 16:46:25 +0000 (17:46 +0100)]
[ARM] 3430/1: ARM: OMAP: 5/8 Update PM

Patch from Tony Lindgren

Update OMAP PM code from linux-omap tree:

- Move PM code from plat-omap to mach-omap1 and mach-omap2
  by Tony Lindgren
- Add minimal PM support for omap24xx by Tony Lindgren and
  Richard Woodruff
- Misc updates to omap1 PM code by Tuukka Tikkanen et al
- Updates to the SRAM code needed for PM and FB by Imre Deak

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3429/1: ARM: OMAP: 4/8 Update GPIO
Tony Lindgren [Sun, 2 Apr 2006 16:46:23 +0000 (17:46 +0100)]
[ARM] 3429/1: ARM: OMAP: 4/8 Update GPIO

Patch from Tony Lindgren

Update OMAP GPIO code from linux-omap tree:

- Fix omap16xx edge control by Juha Yrjola
- Support for additional omap16xx trigger modes by Dirk Behme
- Fix edge detection by Tony Lindgren et al.
- Better support for omap15xx and omap310 by Andrej Zaborowski
- Fix omap15xx interrupt bug by Petukhov Nikolay

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3428/1: ARM: OMAP: 3/8 Update pin multiplexing
Tony Lindgren [Sun, 2 Apr 2006 16:46:22 +0000 (17:46 +0100)]
[ARM] 3428/1: ARM: OMAP: 3/8 Update pin multiplexing

Patch from Tony Lindgren

Update OMAP pin multiplexing code from linux-omap tree.
This patch adds new pin configurations by various OMAP
developers, and suport for omap730 by Brian Swetland.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3427/1: ARM: OMAP: 2/8 Update timers
Tony Lindgren [Sun, 2 Apr 2006 16:46:21 +0000 (17:46 +0100)]
[ARM] 3427/1: ARM: OMAP: 2/8 Update timers

Patch from Tony Lindgren

Update OMAP timers from linux-omap tree. The highlights of the
patch are:

- Move timer32k code from mach-omap1 to plat-omap and make it
  work also on omap24xx by Tony Lindgren
- Add support for dmtimer idle check for PM by Tuukka Tikkanen

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3426/1: ARM: OMAP: 1/8 Update clock framework
Tony Lindgren [Sun, 2 Apr 2006 16:46:20 +0000 (17:46 +0100)]
[ARM] 3426/1: ARM: OMAP: 1/8 Update clock framework

Patch from Tony Lindgren

Update OMAP clock framework from linux-omap tree.
The highlights of the patch are:

- Add support for omap730 clocks by Andrzej Zaborowski
- Fix compile warnings by Dirk Behme
- Add support for using dev id by Tony Lindgren and Komal Shah
- Move memory timings and PRCM into separate files by Tony Lindgren

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[WATCHDOG] pcwd.c firmware-info patch
Wim Van Sebroeck [Sun, 12 Feb 2006 15:47:34 +0000 (16:47 +0100)]
[WATCHDOG] pcwd.c firmware-info patch

Get the firmware version into the private data struct
of the ISA-PC watchdog card.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
18 years ago[WATCHDOG] pcwd.c control status patch
Wim Van Sebroeck [Sun, 12 Feb 2006 15:37:36 +0000 (16:37 +0100)]
[WATCHDOG] pcwd.c control status patch

Clean-up the control status code (insert tabs where relevant),
Add new Control Status defines, Make sure that the R2DS bit
stays the same.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
18 years ago[ARM] 3396/2: AT91RM9200 Platform devices update
Andrew Victor [Sun, 2 Apr 2006 16:15:51 +0000 (17:15 +0100)]
[ARM] 3396/2: AT91RM9200 Platform devices update

Patch from Andrew Victor

This patch updates the platform device resources for the Ethernet and
MMC peripherals.  It also adds platform device information for the NAND
(SmartMedia), I2C and the RTC.

(This version of the patch can be applied before Patch 3392/1)

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3395/2: AT91RM9200 Dataflash Card vs MMC selection
Andrew Victor [Sun, 2 Apr 2006 16:15:49 +0000 (17:15 +0100)]
[ARM] 3395/2: AT91RM9200 Dataflash Card vs MMC selection

Patch from Andrew Victor

On the Atmel AT91RM9200-DK and -EK boards, a pin is used to control
whether the card socket is used for a DataFlash Card or an MMC/SD card.

We now default to MMC/SD in the configuration files.

(This version of the patch can be applied before Patch 3392/1)

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3393/2: AT91RM9200 LED support
Andrew Victor [Sun, 2 Apr 2006 16:15:48 +0000 (17:15 +0100)]
[ARM] 3393/2: AT91RM9200 LED support

Patch from Andrew Victor

This patch adds support for the LED(s) on the AT91RM9200-based boards.

(This version of the patch can be applied before Patch 3392/1)

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3453/1: Poodle: Correctly set the memory size
Richard Purdie [Sun, 2 Apr 2006 16:11:00 +0000 (17:11 +0100)]
[ARM] 3453/1: Poodle: Correctly set the memory size

Patch from Richard Purdie

Force the Sharp Zaurus Poodle memory size to 32MB.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3446/1: i.MX: MMC/SD SDHC controller registration for i.MX/MX1 MX1ADS board
Pavel Pisa [Sun, 2 Apr 2006 15:58:38 +0000 (16:58 +0100)]
[ARM] 3446/1: i.MX: MMC/SD SDHC controller registration for i.MX/MX1 MX1ADS board

Patch from Pavel Pisa

From: Stefano Fedrigo <aleph@develer.com>

This adds to the MX1ADS platform the needed code to detect
insertion/removal of an MMC/SD card.  Tested on a v1.1 board.

Signed-off-by: Stefano Fedrigo <aleph@develer.com>
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3444/1: i.MX: Scatter-gather DMA emulation for i.MX/MX1
Pavel Pisa [Sun, 2 Apr 2006 15:58:37 +0000 (16:58 +0100)]
[ARM] 3444/1: i.MX: Scatter-gather DMA emulation for i.MX/MX1

Patch from Pavel Pisa

This patch contains simplified set of changes to add scatter-gather
emulation capability into MX1 DMA support. The result should
be still usable for next combination of DMA transfers
  Statter-Gather/linear/2D/FIFO to linear/2D/FIFO and
  linear/2D/FIFO to Statter-Gather/2D/FIFO
The patch corrects channel priority allocation to be compatible
with MX1 hardware implementation.
Previous code has not been adapted from its PXA original.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3451/1: ep93xx: use the m48t86 rtc driver on the ts72xx platform
Lennert Buytenhek [Sun, 2 Apr 2006 15:17:40 +0000 (16:17 +0100)]
[ARM] 3451/1: ep93xx: use the m48t86 rtc driver on the ts72xx platform

Patch from Lennert Buytenhek

Instantiate the recently merged m48t86 rtc driver in the ts72xx code.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3450/1: ep93xx: use the ep93xx rtc driver
Lennert Buytenhek [Sun, 2 Apr 2006 15:17:34 +0000 (16:17 +0100)]
[ARM] 3450/1: ep93xx: use the ep93xx rtc driver

Patch from Lennert Buytenhek

Instantiate the recently merged ep93xx rtc driver in the ep93xx code.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3452/1: [S3C2410] RX3715 - add nand information
Ben Dooks [Sun, 2 Apr 2006 15:16:15 +0000 (16:16 +0100)]
[ARM] 3452/1: [S3C2410] RX3715 - add nand information

Patch from Ben Dooks

NAND definitions for the HP iPAQ RX3715's
internal NAND flash

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years agoDocumentation: fix minor kernel-doc warnings
Martin Waitz [Sun, 2 Apr 2006 11:59:55 +0000 (13:59 +0200)]
Documentation: fix minor kernel-doc warnings

This patch updates the comments to match the actual code.

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
18 years agoBUG_ON() Conversion in drivers/net/
Eric Sesterhenn [Sun, 2 Apr 2006 11:52:48 +0000 (13:52 +0200)]
BUG_ON() Conversion in drivers/net/

this changes if() BUG(); constructs to BUG_ON() which is
cleaner, contains unlikely() and can better optimized away.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
18 years agoBUG_ON() Conversion in drivers/s390/net/lcs.c
Eric Sesterhenn [Sun, 2 Apr 2006 11:50:14 +0000 (13:50 +0200)]
BUG_ON() Conversion in drivers/s390/net/lcs.c

this changes if() BUG(); constructs to BUG_ON() which is
cleaner, contains unlikely() and can better optimized away.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
18 years agoBUG_ON() Conversion in mm/slab.c
Eric Sesterhenn [Sun, 2 Apr 2006 11:49:25 +0000 (13:49 +0200)]
BUG_ON() Conversion in mm/slab.c

this changes if() BUG(); constructs to BUG_ON() which is
cleaner, contains unlikely() and can better optimized away.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
18 years agoBUG_ON() Conversion in mm/highmem.c
Eric Sesterhenn [Sun, 2 Apr 2006 11:47:35 +0000 (13:47 +0200)]
BUG_ON() Conversion in mm/highmem.c

this changes if() BUG(); constructs to BUG_ON() which is
cleaner, contains unlikely() and can better optimized away.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
18 years agoBUG_ON() Conversion in kernel/signal.c
Eric Sesterhenn [Sun, 2 Apr 2006 11:45:55 +0000 (13:45 +0200)]
BUG_ON() Conversion in kernel/signal.c

this changes if() BUG(); constructs to BUG_ON() which is
cleaner, contains unlikely() and can better optimized away.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
18 years agoBUG_ON() Conversion in kernel/signal.c
Eric Sesterhenn [Sun, 2 Apr 2006 11:44:47 +0000 (13:44 +0200)]
BUG_ON() Conversion in kernel/signal.c

this changes if() BUG(); constructs to BUG_ON() which is
cleaner, contains unlikely() and can better optimized away.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
18 years agoBUG_ON() Conversion in kernel/ptrace.c
Eric Sesterhenn [Sun, 2 Apr 2006 11:43:40 +0000 (13:43 +0200)]
BUG_ON() Conversion in kernel/ptrace.c

this changes if() BUG(); constructs to BUG_ON() which is
cleaner, contains unlikely() and can better optimized away.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
18 years agoBUG_ON() Conversion in ipc/shm.c
Eric Sesterhenn [Sun, 2 Apr 2006 11:42:42 +0000 (13:42 +0200)]
BUG_ON() Conversion in ipc/shm.c

this changes if() BUG(); constructs to BUG_ON() which is
cleaner, contains unlikely() and can better optimized away.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>