linux-2.6
19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Thu, 20 Oct 2005 06:12:03 +0000 (23:12 -0700)] 
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years ago[PATCH] swiotlb: make sure initial DMA allocations really are in DMA memory
Yasunori Goto [Wed, 19 Oct 2005 22:52:18 +0000 (15:52 -0700)] 
[PATCH] swiotlb: make sure initial DMA allocations really are in DMA memory

This introduces a limit parameter to the core bootmem allocator; The new
parameter indicates that physical memory allocated by the bootmem
allocator should be within the requested limit.

We also introduce alloc_bootmem_low_pages_limit, alloc_bootmem_node_limit,
alloc_bootmem_low_pages_node_limit apis, but alloc_bootmem_low_pages_limit
is the only api used for swiotlb.

The existing alloc_bootmem_low_pages() api could instead have been
changed and made to pass right limit to the core allocator.  But that
would make the patch more intrusive for 2.6.14, as other arches use
alloc_bootmem_low_pages().  We may be done that post 2.6.14 as a
cleanup.

With this, swiotlb gets memory within 4G for both x86_64 and ia64
arches.

Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Cc: Ravikiran G Thirumalai <kiran@scalex86.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] `unaligned access' in acpi get_root_bridge_busnr()
Peter Chubb [Thu, 20 Oct 2005 05:45:14 +0000 (22:45 -0700)] 
[PATCH] `unaligned access' in acpi get_root_bridge_busnr()

In drivers/acpi/glue.c the address of an integer is cast to the address of
an unsigned long.  This breaks on systems where a long is larger than an
int --- for a start the int can be misaligned; for a second the assignment
through the pointer will overwrite part of the next variable.

Signed-off-by: Peter Chubb <peterc@gelato.unsw.edu.au>
Acked-by: "Brown, Len" <len.brown@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fix MGA DRM regression before 2.6.14
Dave Airlie [Thu, 20 Oct 2005 04:23:51 +0000 (21:23 -0700)] 
[PATCH] fix MGA DRM regression before 2.6.14

I've gotten a report on lkml, of a possible regression in the MGA DRM in
2.6.14-rc4 (since -rc1), I haven't been able to reproduce it here, but I've
figured out some possible issues in the mga code that were definitely
wrong, some of these are from DRM CVS, the main fix is the agp enable bit
on the old code path still used by everyone.....

Signed-off-by: Dave Airlie <airlied@linux.ie>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Threads shouldn't inherit PF_NOFREEZE
Alan Stern [Thu, 20 Oct 2005 04:23:51 +0000 (21:23 -0700)] 
[PATCH] Threads shouldn't inherit PF_NOFREEZE

The PF_NOFREEZE process flag should not be inherited when a thread is
forked.  This patch (as585) removes the flag from the child.

This problem is starting to show up more and more as drivers turn to the
kthread API instead of using kernel_thread().  As a result, their kernel
threads are now children of the kthread worker instead of modprobe, and
they inherit the PF_NOFREEZE flag.  This can cause problems during system
suspend; the kernel threads are not getting frozen as they ought to be.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Export RCS_TAR_IGNORE for rpm targets
Tom Rini [Thu, 20 Oct 2005 04:23:49 +0000 (21:23 -0700)] 
[PATCH] Export RCS_TAR_IGNORE for rpm targets

The variable RCS_TAR_IGNORE is used in scripts/packaging/Makefile, but not
exported from the main Makefile, so it's never used.

This results in the rpm targets being very unhappy in quilted trees.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc64: Fix error in vDSO 32 bits date
Benjamin Herrenschmidt [Thu, 20 Oct 2005 04:23:49 +0000 (21:23 -0700)] 
[PATCH] ppc64: Fix error in vDSO 32 bits date

The implementation of __kernel_gettimeofday() in the 32 bits vDSO has a
small bug (a typo actually) that will cause it to lose 1 bit of precision.
Not terribly bad but worth fixing.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Three one-liners in md.c
NeilBrown [Thu, 20 Oct 2005 04:23:47 +0000 (21:23 -0700)] 
[PATCH] Three one-liners in md.c

The main problem fixes is that in certain situations stopping md arrays may
take longer than you expect, or may require multiple attempts.  This would
only happen when resync/recovery is happening.

This patch fixes three vaguely related bugs.

1/ The recent change to use kthreads got the setting of the
   process name wrong.  This fixes it.
2/ The recent change to use kthreads lost the ability for
   md threads to be signalled with SIG_KILL.  This restores that.
3/ There is a long standing bug in that if:
    - An array needs recovery (onto a hot-spare) and
    - The recovery is being blocked because some other array being
       recovered shares a physical device and
    - The recovery thread is killed with SIG_KILL
   Then the recovery will appear to have completed with no IO being
   done, which can cause data corruption.
   This patch makes sure that incomplete recovery will be treated as
   incomplete.

Note that any kernel affected by bug 2 will not suffer the problem of bug
3, as the signal can never be delivered.  Thus the current 2.6.14-rc
kernels are not susceptible to data corruption.  Note also that if arrays
are shutdown (with "mdadm -S" or "raidstop") then the problem doesn't
occur.  It only happens if a SIGKILL is independently delivered as done by
'init' when shutting down.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] raw1394: fix locking in the presence of SMP and interrupts
Andy Wingo [Thu, 20 Oct 2005 04:23:46 +0000 (21:23 -0700)] 
[PATCH] raw1394: fix locking in the presence of SMP and interrupts

Changes all spinlocks that can be held during an irq handler to disable
interrupts while the lock is held.  Changes spin_[un]lock_irq to use the
irqsave/irqrestore variants for robustness and readability.

In raw1394.c:handle_iso_listen(), don't grab host_info_lock at all -- we're
not accessing host_info_list or host_count, and holding this lock while
trying to tasklet_kill the iso tasklet this can cause an ABBA deadlock if
ohci:dma_rcv_tasklet is running and tries to grab host_info_lock in
raw1394.c:receive_iso.  Test program attached reliably deadlocks all SMP
machines I have been able to test without this patch.

Signed-off-by: Andy Wingo <wingo@pobox.com>
Acked-by: Ben Collins <bcollins@ubuntu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] orinoco: limit message rate
Andrew Morton [Thu, 20 Oct 2005 04:23:44 +0000 (21:23 -0700)] 
[PATCH] orinoco: limit message rate

Brice Goglin <Brice.Goglin@ens-lyon.org> reports a printk storm from this
driver.  Fix.

Acked-by: David Gibson <hermes@gibson.dropbear.id.au>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] mm: hugetlb truncation fixes
Hugh Dickins [Thu, 20 Oct 2005 04:23:43 +0000 (21:23 -0700)] 
[PATCH] mm: hugetlb truncation fixes

hugetlbfs allows truncation of its files (should it?), but hugetlb.c often
forgets that: crashes and misaccounting ensue.

copy_hugetlb_page_range better grab the src page_table_lock since we don't
want to guess what happens if concurrently truncated.  unmap_hugepage_range
rss accounting must not assume the full range was mapped.  follow_hugetlb_page
must guard with page_table_lock and be prepared to exit early.

Restyle copy_hugetlb_page_range with a for loop like the others there.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix cpu timers exit deadlock and races
Roland McGrath [Thu, 20 Oct 2005 05:21:23 +0000 (22:21 -0700)] 
[PATCH] Fix cpu timers exit deadlock and races

Oleg Nesterov reported an SMP deadlock.  If there is a running timer
tracking a different process's CPU time clock when the process owning
the timer exits, we deadlock on tasklist_lock in posix_cpu_timer_del via
exit_itimers.

That code was using tasklist_lock to check for a race with __exit_signal
being called on the timer-target task and clearing its ->signal.
However, there is actually no such race.  __exit_signal will have called
posix_cpu_timers_exit and posix_cpu_timers_exit_group before it does
that.  Those will clear those k_itimer's association with the dying
task, so posix_cpu_timer_del will return early and never reach the code
in question.

In addition, posix_cpu_timer_del called from exit_itimers during execve
or directly from timer_delete in the process owning the timer can race
with an exiting timer-target task to cause a double put on timer-target
task struct.  Make sure we always access cpu_timers lists with sighand
lock held.

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[ARM] 3024/1: Add cpu_v6_proc_fin
Tony Lindgren [Wed, 19 Oct 2005 22:00:56 +0000 (23:00 +0100)] 
[ARM] 3024/1: Add cpu_v6_proc_fin

Patch from Tony Lindgren

Machine restart calls cpu_proc_fin() to clean and disable
cache, and turn off interrupts. This patch adds proper
cpu_v6_proc_fin.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[PATCH] Handle spurious page fault for hugetlb region
Seth, Rohit [Tue, 18 Oct 2005 21:15:12 +0000 (14:15 -0700)] 
[PATCH] Handle spurious page fault for hugetlb region

The hugetlb pages are currently pre-faulted.  At the time of mmap of
hugepages, we populate the new PTEs.  It is possible that HW has already
cached some of the unused PTEs internally.  These stale entries never
get a chance to be purged in existing control flow.

This patch extends the check in page fault code for hugepages.  Check if
a faulted address falls with in size for the hugetlb file backing it.
We return VM_FAULT_MINOR for these cases (assuming that the arch
specific page-faulting code purges the stale entry for the archs that
need it).

Signed-off-by: Rohit Seth <rohit.seth@intel.com>
[ This is apparently arguably an ia64 port bug. But the code won't
  hurt, and for now it fixes a real problem on some ia64 machines ]

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[ARM] 3023/1: pxa-regs: Typo in ARM pxa register definitions.
Paul Schulz [Tue, 18 Oct 2005 18:40:32 +0000 (19:40 +0100)] 
[ARM] 3023/1: pxa-regs: Typo in ARM pxa register definitions.

Patch from Paul Schulz

The following trivial patch is to fix what looks like a typo in the PXA register
definitions. The correction comes directly from the definition in the
Intel Documentation.

 http://www.intel.com/design/pca/applicationsprocessors/manuals/278693.htm
 Intel(R) PXA 255 Processor - Developers Manual - Jan 2004 - Page 12-33

Neither 'UDCCS_IO_ROF' or 'UDCCS_IO_DME' are currently used elseware
in the main code (from grep of tree)... The current definitions have been
in the code since at lease 2.4.7.

Signed-off-by: Paul Schulz <paul@mawsonlakes.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[PATCH] vesafb: Fix display corruption on display blank
Antonino A. Daplas [Tue, 18 Oct 2005 07:59:52 +0000 (15:59 +0800)] 
[PATCH] vesafb: Fix display corruption on display blank

Reported by: Bob Tracy <rct@gherkin.frus.com>

 "...I've got a Toshiba notebook (730XCDT -- Pentium 150MMX) for which
  I'm using the Vesa FB driver.  When the machine has been idle for some
  time and the driver attempts to powerdown the display, rather than the
  display going blank, it goes gray with several strange lines.  When I
  hit the "shift" key or other-wise wake up the display, the old video
  state is not fully restored..."

vesafb recently added a blank method which has only 2 states, powerup and
powerdown.  The powerdown state is used for all blanking levels, but in his
case, powerdown does not work correctly for higher levels of display
powersaving. Thus, for intermediate power levels, use software blanking,
and use only hardware blanking for an explicit powerdown.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Tue, 18 Oct 2005 15:41:06 +0000 (08:41 -0700)] 
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Tue, 18 Oct 2005 15:40:46 +0000 (08:40 -0700)] 
Merge master.kernel.org:/home/rmk/linux-2.6-serial

19 years agoAdd some basic .gitignore files
Linus Torvalds [Tue, 18 Oct 2005 15:26:15 +0000 (08:26 -0700)] 
Add some basic .gitignore files

This still leaves driver and architecture-specific subdirectories alone,
but gets rid of the bulk of the "generic" generated files that we should
ignore.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[ARM] 3021/1: Interrupt 0 bug fix for ixp4xx
Kenneth Tan [Tue, 18 Oct 2005 06:53:35 +0000 (07:53 +0100)] 
[ARM] 3021/1: Interrupt 0 bug fix for ixp4xx

Patch from Kenneth Tan

The get_irqnr_and_base subroutine of ixp4xx does not take interrupt 0 condition into account properly. We should not perform "subs" here. The Z flag will be set when interrupt 0 occur, which resulting "movne r1, sp" in the caller routine (irq_handler) not being executed.

When interrupt 0 occur:
o if CONFIG_CPU_IXP46X is not set, "subs" will set the Z flag and return
o if CONFIG_CPU_IXP46X is set, codes in upper interrupt handling will be trigerred. But since this is not supper interrupt, the "cmp" in the upper interrupt handling portion will set the Z flag and return

Signed-off-by: Kenneth Tan <chong.yin.tan@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3020/1: Fixes typo error CONFIG_CPU_IXP465, which should be CONFIG_CPU_IXP46X
Kenneth Tan [Tue, 18 Oct 2005 06:51:35 +0000 (07:51 +0100)] 
[ARM] 3020/1: Fixes typo error CONFIG_CPU_IXP465, which should be CONFIG_CPU_IXP46X

Patch from Kenneth Tan

The cpu_is_ixp465 macro in include/asm-arm/arch-ixp4xx/hardware.h is always returning 0 because #ifdef CONFIG_CPU_IXP465 is always false.

Signed-off-by: Kenneth Tan <chong.yin.tan@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3019/1: fix wrong comments
Nicolas Pitre [Tue, 18 Oct 2005 06:51:34 +0000 (07:51 +0100)] 
[ARM] 3019/1: fix wrong comments

Patch from Nicolas Pitre

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3018/1: S3C2410 - check de-referenced device is really a platform device
Ben Dooks [Tue, 18 Oct 2005 06:51:34 +0000 (07:51 +0100)] 
[ARM] 3018/1: S3C2410 - check de-referenced device is really a platform device

Patch from Ben Dooks

Check that the device we are looking at is really
a platform device before trying to cast it to one
to find out the platform bus number.

Thanks to RMK for pointing this out.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[PATCH] kbuild: Eliminate build error when KALLSYMS not defined
Mark Rustad [Mon, 17 Oct 2005 23:43:34 +0000 (16:43 -0700)] 
[PATCH] kbuild: Eliminate build error when KALLSYMS not defined

The following build error happens with 2.6.14-rc4 when CONFIG_KALLSYMS is
not defined.  The error message in a fragment of the output was:

  CC      arch/i386/lib/usercopy.o
  AR      arch/i386/lib/lib.a
/bin/sh: line 1: +@: command not found
make[3]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
  CHK     include/linux/compile.h

Signed-off-by: Mark Rustad <mrustad@mac.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] aio: revert lock_kiocb()
Zach Brown [Mon, 17 Oct 2005 23:43:33 +0000 (16:43 -0700)] 
[PATCH] aio: revert lock_kiocb()

lock_kiocb() was introduced to serialize retrying and cancellation.  In the
process of doing so it tried to sleep waiting for KIF_LOCKED while holding
the ctx_lock spinlock.  Recent fixes have ensured that multiple concurrent
retries won't be attempted for a given iocb.  Cancel has other problems and
has no significant in-tree users that have been complaining about it.  So
for the immediate future we'll revert sleeping with the lock held and will
address proper cancellation and retry serialization in the future.

Signed-off-by: Zach Brown <zach.brown@oracle.com>
Acked-by: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uniput - fix crash on SMP
Dmitry Torokhov [Mon, 17 Oct 2005 23:43:32 +0000 (16:43 -0700)] 
[PATCH] uniput - fix crash on SMP

Only signal completion after marking request slot as free, otherwise other
processor can free request structure before we finish using it.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix /proc/acpi/events around suspend
Pavel Machek [Mon, 17 Oct 2005 23:43:31 +0000 (16:43 -0700)] 
[PATCH] Fix /proc/acpi/events around suspend

Fix -EIO on /proc/acpi/events after suspends.  This actually breaks
suspending by power button in many setups.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] n_r3964 mod_timer() fix
Stephan Brodkorb [Mon, 17 Oct 2005 23:43:30 +0000 (16:43 -0700)] 
[PATCH] n_r3964 mod_timer() fix

Since Revision 1.10 was released the n_r3964 module wasn't able to receive any
data.  The reason for that behavior is because there were some wrong calls of
mod_timer(...) in the function receive_char (...).  This patch should fix this
problem and was successfully tested with talking to some kuka industrial
robots.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] output of /proc/maps on nommu systems is incomplete
David McCullough [Mon, 17 Oct 2005 23:43:29 +0000 (16:43 -0700)] 
[PATCH] output of /proc/maps on nommu systems is incomplete

Currently you do not get all the map entries on nommu systems because the
start function doesn't index into the list using the value of "pos".

Signed-off-by: David McCullough <davidm@snapgear.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] rcu: keep rcu callback event counter
Eric Dumazet [Mon, 17 Oct 2005 18:01:21 +0000 (20:01 +0200)] 
[PATCH] rcu: keep rcu callback event counter

This makes call_rcu() keep track of how many events there are on the RCU
list, and cause a reschedule event when the list gets too long.

This helps keep RCU event lists down.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix and clean up quirk_intel_ide_combined() configuration
Jeff Garzik [Mon, 17 Oct 2005 17:01:57 +0000 (13:01 -0400)] 
[PATCH] Fix and clean up quirk_intel_ide_combined() configuration

This change makes quirk_intel_ide_combined() dependent on the precise
conditions under which it is needed:

* IDE is built in
* IDE SATA option is not set
* ata_piix or ahci drivers are enabled

This fixes an issue where some modular configurations would not cause
the quirk to be enabled.

Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Linus torvalds <torvalds@osdl.org>
19 years ago[PATCH] posix-timers: fix task accounting
Oleg Nesterov [Mon, 17 Oct 2005 14:49:42 +0000 (18:49 +0400)] 
[PATCH] posix-timers: fix task accounting

Make sure we release the task struct properly when releasing pending
timers.

release_task() does write_lock_irq(&tasklist_lock), so it can't race
with run_posix_cpu_timers() on any cpu.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] NFS: Fix Oopsable/unnecessary i_count manipulations in nfs_wait_on_inode()
Trond Myklebust [Mon, 17 Oct 2005 10:03:23 +0000 (06:03 -0400)] 
[PATCH] NFS: Fix Oopsable/unnecessary i_count manipulations in nfs_wait_on_inode()

Oopsable since nfs_wait_on_inode() can get called as part of iput_final().

Unnecessary since the caller had better be damned sure that the inode won't
disappear from underneath it anyway.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] NFS: Fix cache consistency races
Trond Myklebust [Mon, 17 Oct 2005 10:02:00 +0000 (06:02 -0400)] 
[PATCH] NFS: Fix cache consistency races

If the data cache has been marked as potentially invalid by nfs_refresh_inode,
we should invalidate it rather than assume that changes are due to our own
activity.

Also ensure that we always start with a valid cache before declaring it
to be protected by a delegation.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] USB: fix bug in handling of highspeed usb HID devices
Christian Krause [Mon, 17 Oct 2005 21:30:48 +0000 (14:30 -0700)] 
[PATCH] USB: fix bug in handling of highspeed usb HID devices

During the development of an USB device I found a bug in the handling of
Highspeed HID devices in the kernel.

What happened?

Highspeed HID devices are correctly recognized and enumerated by the
kernel. But even if usbhid kernel module is loaded, no HID reports are
received by the kernel.

The output of the hardware USB analyzer told me that the host doesn't
even poll for interrupt IN transfers (even the "interrupt in" USB
transfer are polled by the host).

After some debugging in hid-core.c I've found the reason.

In case of a highspeed device, the endpoint interval is re-calculated in
driver/usb/input/hid-core.c:

line 1669:
             /* handle potential highspeed HID correctly */
             interval = endpoint->bInterval;
             if (dev->speed == USB_SPEED_HIGH)
                   interval = 1 << (interval - 1);

Basically this calculation is correct (refer to USB 2.0 spec, 9.6.6).
This new calculated value of "interval" is used as input for
usb_fill_int_urb:

line 1685:

            usb_fill_int_urb(hid->urbin, dev, pipe, hid->inbuf, 0,
                   hid_irq_in, hid, interval);

Unfortunately the same calculation as above is done a second time in
usb_fill_int_urb in the file include/linux/usb.h:

line 933:
        if (dev->speed == USB_SPEED_HIGH)
                urb->interval = 1 << (interval - 1);
        else
                urb->interval = interval;

This means, that if the endpoint descriptor (of a high speed device)
specifies e.g. bInterval = 7, the urb->interval gets the value:

hid-core.c: interval = 1 << (7-1) = 0x40 = 64
urb->interval = 1 << (interval -1) = 1 << (63) = integer overflow

Because of this the value of urb->interval is sometimes negative and is
rejected in core/urb.c:
line 353:
                /* too small? */
                if (urb->interval <= 0)
                        return -EINVAL;

The conclusion is, that the recalculaton of the interval (which is
necessary for highspeed) should not be made twice, because this is
simply wrong. ;-)

Re-calculation in usb_fill_int_urb makes more sense, because it is the
most general approach. So it would make sense to remove it from
hid-core.c.

Because in hid-core.c the interval variable is only used for calling
usb_fill_int_urb, it is no problem to remove the highspeed
re-calculation in this file.

Signed-off-by: Christian Krause <chkr@plauener.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] isp116x-hcd: fix handling of short transfers
Olav Kongas [Mon, 17 Oct 2005 21:30:43 +0000 (14:30 -0700)] 
[PATCH] isp116x-hcd: fix handling of short transfers

Increased use of scatter-gather by usb-storage driver after 2.6.13 has
exposed a buggy codepath in isp116x-hcd, which was probably never
visited before: bug happened only for those urbs, for which
URB_SHORT_NOT_OK was set AND short transfer occurred.

The fix attached was tested in 2 ways: (a) it fixed failing
initialization of a flash drive with an embedded hub; (b) the fix was
tested with 'usbtest' against a modified g_zero driver (on top of
net2280), which generated short bulk IN transfers of various lengths
including multiples and non-multiples of max_packet_length.

Signed-off-by: Olav Kongas <ok@artecdesign.ee>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoIncrease default RCU batching sharply
Linus Torvalds [Mon, 17 Oct 2005 16:10:15 +0000 (09:10 -0700)] 
Increase default RCU batching sharply

Dipankar made RCU limit the batch size to improve latency, but that
approach is unworkable: it can cause the RCU queues to grow without
bounds, since the batch limiter ended up limiting the callbacks.

So make the limit much higher, and start planning on instead limiting
the batch size by doing RCU callbacks more often if the queue looks like
it might be growing too long.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fix black/white-only svideo input in vpx3220 decoder
Ronald S. Bultje [Mon, 17 Oct 2005 03:29:25 +0000 (20:29 -0700)] 
[PATCH] fix black/white-only svideo input in vpx3220 decoder

Fix the fact that the svideo input will only give input in black/white in
some circumstances.  Reason is that in the PCI controller driver (zr36067),
after setting input, we reset norm, which overwrites the input register
with the default.  This patch makes it always set the correct value for the
input when changing norm.

Signed-off-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fix vpx3220 offset issue in SECAM
Ronald S. Bultje [Mon, 17 Oct 2005 03:29:24 +0000 (20:29 -0700)] 
[PATCH] fix vpx3220 offset issue in SECAM

Fix bug #5404 in kernel bugzilla.

It basically updates the vpx3220 initialization tables with some newer
values that we've had in CVS for a while (and that, for some reason, never
ended up in the kernel...  must've gotten lost).  Those fix a ~16 pixels
noise at the top of the picture in at least SECAM, although (now that I
think about it) PAL was probably affected, also.

Signed-off-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] SVGATextMode fix
Samuel Thibault [Mon, 17 Oct 2005 03:29:22 +0000 (20:29 -0700)] 
[PATCH] SVGATextMode fix

Fix bug 5441.

I didn't know about messy programs like svgatextmode...  Couldn't this be
integrated in some linux/drivers/video/console/svgacon.c ?...  So because
of the existence of the svgatextmode program, the kernel is not supposed to
touch to CRT_OVERFLOW/SYNC_END/DISP/DISP_END/OFFSET ?

Disabling the check in vgacon_resize() might help indeed, but I'm really
not sure whether it will work for any chipset: in my patch, CRT registers
are set at each console switch, since stty rows/cols apply to consoles
separately...

The attached solution is to keep the test, but if it fails, we assume that
the caller knows what it does (i.e.  it is svgatextmode) and then disable
any further call to vgacon_doresize.  Svgatextmode is usually used to
_expand_ the display, not to shrink it.  And it is harmless in the case of
a too big stty rows/cols: the display will just be cropped.  I tested it on
my laptop, and it works fine with svgatextmode.

A better solution would be that svgatextmode explicitely tells the kernel
not to care about video timing, but for this an interface needs be defined
and svgatextmode be patched.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] list: add missing rcu_dereference on first element
Herbert Xu [Mon, 17 Oct 2005 03:29:20 +0000 (20:29 -0700)] 
[PATCH] list: add missing rcu_dereference on first element

It seems that all the list_*_rcu primitives are missing a memory barrier
on the very first dereference.  For example,

#define list_for_each_rcu(pos, head) \
for (pos = (head)->next; prefetch(pos->next), pos != (head); \
pos = rcu_dereference(pos->next))

It will go something like:

pos = (head)->next

prefetch(pos->next)

pos != (head)

do stuff

We're missing a barrier here.

pos = rcu_dereference(pos->next)

fetch pos->next

barrier given by rcu_dereference(pos->next)

store pos

Without the missing barrier, the pos->next value may turn out to be stale.
In fact, if "do stuff" were also dereferencing pos and relying on
list_for_each_rcu to provide the barrier then it may also break.

So here is a patch to make sure that we have a barrier for the first
element in the list.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: "Paul E. McKenney" <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoFix memory ordering bug in page reclaim
Linus Torvalds [Mon, 17 Oct 2005 00:36:06 +0000 (17:36 -0700)] 
Fix memory ordering bug in page reclaim

As noticed by Nick Piggin, we need to make sure that we check the page
count before we check for PageDirty, since the dirty check is only valid
if the count implies that we're the only possible ones holding the page.

We always did do this, but the code needs a read-memory-barrier to make
sure that the orderign is also honored by the CPU.

(The writer side is ordered due to the atomic decrement and test on the
page count, see the discussion on linux-kernel)

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH]: highest_possible_processor_id() has to be a macro
Al Viro [Sun, 16 Oct 2005 07:17:33 +0000 (00:17 -0700)] 
[PATCH]: highest_possible_processor_id() has to be a macro

... otherwise, things like alpha and sparc64 break and break
badly.  They define cpu_possible_map to something else in smp.h
*AFTER* having included cpumask.h.

If that puppy is a macro, expansion will happen at the actual
caller, when we'd already seen #define cpu_possible_map ... and we will
get the right thing used.

As an inline helper it will be tokenized before we get to that
define and that's it; no matter what we define later, it won't affect
anything.  We get modules with dependency on cpu_possible_map instead
of the right symbol (phys_cpu_present_map in case of sparc64), or outright
link errors if they are built-in.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER]: Fix ip6_table.c build with NETFILTER_DEBUG enabled.
Andrew Morton [Sat, 15 Oct 2005 23:15:38 +0000 (16:15 -0700)] 
[NETFILTER]: Fix ip6_table.c build with NETFILTER_DEBUG enabled.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SERIAL] Add SupraExpress 56i support
maximilian attems [Sat, 15 Oct 2005 09:43:35 +0000 (10:43 +0100)] 
[SERIAL] Add SupraExpress 56i support

The modem is said to work with belows addition to pnp_dev_table[]:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=296011

Signed-off-by: maximilian attems <janitor@sternwelten.at>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[PATCH] usbserial: Regression in USB generic serial driver
Randall Nortman [Sat, 15 Oct 2005 00:21:50 +0000 (17:21 -0700)] 
[PATCH] usbserial: Regression in USB generic serial driver

Kernel version 2.6.13 introduced a regression in the generic USB
serial converter driver (usbserial.o, drivers/usb/serial/generic.c).
The bug manifests, as far as I can tell, whenever you attempt to write
to the device -- the write will never complete (write() returns 0, or
blocks).

Signed-off-by: Randall Nortman <oss@wonderclown.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Sat, 15 Oct 2005 00:17:04 +0000 (17:17 -0700)] 
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Sat, 15 Oct 2005 00:16:55 +0000 (17:16 -0700)] 
Merge master.kernel.org:/home/rmk/linux-2.6-serial

19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Sat, 15 Oct 2005 00:16:35 +0000 (17:16 -0700)] 
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years ago[PATCH] megaraid maintainers entry
Kolli, Neela Syam [Fri, 14 Oct 2005 22:59:13 +0000 (15:59 -0700)] 
[PATCH] megaraid maintainers entry

I am taking over all Megaraid SCSI drivers.  Here is the patch for the
MAINTENERS file.

Signed-off-by: Neela Syam Kolli <Neela.Kolli@engenio.com>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] sh-sci.c sci_start_tx error
Yoshinori Sato [Fri, 14 Oct 2005 22:59:12 +0000 (15:59 -0700)] 
[PATCH] sh-sci.c sci_start_tx error

Argument does not agree.

Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] nommu build error fix
Yoshinori Sato [Fri, 14 Oct 2005 22:59:11 +0000 (15:59 -0700)] 
[PATCH] nommu build error fix

"proc_smaps_operations" is not defined in case of "CONFIG_MMU=n".

Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Dallas's 1-wire bus compile error
Evgeniy Polyakov [Fri, 14 Oct 2005 22:59:11 +0000 (15:59 -0700)] 
[PATCH] Dallas's 1-wire bus compile error

drivers/built-in.o: In function `w1_alloc_dev': undefined reference to `netlink_kernel_create'
drivers/built-in.o: In function `w1_alloc_dev': undefined reference to `sock_release'

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] aacraid: host_lock not released fix
Mark Haverkamp [Fri, 14 Oct 2005 22:59:10 +0000 (15:59 -0700)] 
[PATCH] aacraid: host_lock not released fix

While doing some testing of error cases I ran into this bug.  In some cases
the reset handler can exit with the host_lock still held.

Signed-off-by: Mark Haverkamp <markh@osdl.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc64: Fix G5 model in /proc/cpuinfo
Benjamin Herrenschmidt [Fri, 14 Oct 2005 22:59:09 +0000 (15:59 -0700)] 
[PATCH] ppc64: Fix G5 model in /proc/cpuinfo

Andreas Schwab spotted that recent kernels broke reporting of the PowerMac
machine model in /proc/cpuinfo.  This fixes it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] m32r: Fix smp.c for preempt kernel
Hirokazu Takata [Fri, 14 Oct 2005 22:59:07 +0000 (15:59 -0700)] 
[PATCH] m32r: Fix smp.c for preempt kernel

This patch fixes the following BUG message of arch/m32r/smp.c for
CONFIG_DEBUG_PREEMPT:

BUG: using smp_processor_id() in preemptible

This message is displayed by an smp_processor_id() execution during
kernel's preemptible-state.

Signed-off-by: Hitoshi Yamamoto <hitoshiy@isl.melco.co.jp>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] wireless/airo: Build fix
Matteo Croce [Fri, 14 Oct 2005 22:59:06 +0000 (15:59 -0700)] 
[PATCH] wireless/airo: Build fix

The aironet PCI driver has a build dependency on ISA that prevent the
driver to compile on systems that doesn't support ISA, like x86_64.  The
driver really doesn't depend on ISA, it does some ISA stuff in the
initialization code, since the driver supports both ISA and PCI cards.  So
the driver should depend on ISA_DMA_API to build on all systems, and this
will not hurt PCI at all.

Signed-off-by: Matteo Croce <3297627799@wind.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix copy-and-paste error in BSD accounting
Tim Schmielau [Fri, 14 Oct 2005 22:59:05 +0000 (15:59 -0700)] 
[PATCH] Fix copy-and-paste error in BSD accounting

Fix copy and paste error in jiffies_to_AHZ conversion which leads to wrong
BSD accounting information on alpha and ia64 when
CONFIG_BSD_PROCESS_ACCT_V3 is turned on.

Also update comment to match reorganised header files.

Signed-off-by: Tim Schmielau <tim@physik3.uni-rostock.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] radio-cadet: check request_region() return value correctly
Alexey Dobriyan [Fri, 14 Oct 2005 22:59:04 +0000 (15:59 -0700)] 
[PATCH] radio-cadet: check request_region() return value correctly

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Add missing export of getnstimeofday()
Takashi Iwai [Fri, 14 Oct 2005 22:59:03 +0000 (15:59 -0700)] 
[PATCH] Add missing export of getnstimeofday()

Adds the missing EXPORT_SYMBOL_GPL for getnstimeofday() when
CONFIG_TIME_INTERPOLATION isn't set.  Needed by drivers/char/mmtimer.c

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] zaurus: fix dependencies on collie keyboard
Pavel Machek [Fri, 14 Oct 2005 22:59:03 +0000 (15:59 -0700)] 
[PATCH] zaurus: fix dependencies on collie keyboard

This fixes depenencies of collie keyboard.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] zaurus: fix soc_common.c
Pavel Machek [Fri, 14 Oct 2005 22:59:02 +0000 (15:59 -0700)] 
[PATCH] zaurus: fix soc_common.c

This fixes wrong comments, non-working debug subsystem, and some
potentially dangerous macros.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] zaurus: fix compilation with cpufreq disabled
Pavel Machek [Fri, 14 Oct 2005 22:59:01 +0000 (15:59 -0700)] 
[PATCH] zaurus: fix compilation with cpufreq disabled

This fixes compilation with CPU_FREQ disabled.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] mips: fix build error in TANBAC TB0226
Yoichi Yuasa [Fri, 14 Oct 2005 22:59:00 +0000 (15:59 -0700)] 
[PATCH] mips: fix build error in TANBAC TB0226

arch/mips/pci/fixup-tb0226.c: In function `pcibios_map_irq':
arch/mips/pci/fixup-tb0226.c:31: warning: implicit declaration of function `vr41xx_set_irq_trigger'
arch/mips/pci/fixup-tb0226.c:32: error: `TRIGGER_LEVEL' undeclared (first use in this function)
arch/mips/pci/fixup-tb0226.c:32: error: (Each undeclared identifier is reported only once
arch/mips/pci/fixup-tb0226.c:32: error: for each function it appears in.)
arch/mips/pci/fixup-tb0226.c:33: error: `SIGNAL_THROUGH' undeclared (first use in this function)
arch/mips/pci/fixup-tb0226.c:34: warning: implicit declaration of function `vr41xx_set_irq_level'
arch/mips/pci/fixup-tb0226.c:34: error: `LEVEL_LOW' undeclared (first use in this function)

Signed-off-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[SPARC64]: Fix powering off on SMP.
David S. Miller [Fri, 14 Oct 2005 22:26:08 +0000 (15:26 -0700)] 
[SPARC64]: Fix powering off on SMP.

Doing a "SUNW,stop-self" firmware call on the other cpus is not the
correct thing to do when dropping into the firmware for a halt,
reboot, or power-off.

For now, just do nothing to quiet the other cpus, as the system should
be quiescent enough.  Later we may decide to implement smp_send_stop()
like the other SMP platforms do.

Based upon a report from Christopher Zimmermann.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[QLOGICPTI]: Handle INQUIRY response sniffing correctly.
David S. Miller [Fri, 14 Oct 2005 20:44:32 +0000 (13:44 -0700)] 
[QLOGICPTI]: Handle INQUIRY response sniffing correctly.

These days, in 2.6.x, even INQUIRY commands are sent using
scatter gather lists.

Bug reported by Tom 'spot' Callaway.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[ARM] 3014/1: Spitz keyboard: Correct the right shift key
Richard Purdie [Fri, 14 Oct 2005 15:07:28 +0000 (16:07 +0100)] 
[ARM] 3014/1: Spitz keyboard: Correct the right shift key

Patch from Richard Purdie

Correct the right shift key entry in the spitz keyboard driver.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3013/1: Spitz: Fix compile errors
Richard Purdie [Fri, 14 Oct 2005 15:07:27 +0000 (16:07 +0100)] 
[ARM] 3013/1: Spitz: Fix compile errors

Patch from Richard Purdie

Remove a couple of lines of accidently added code causing compile
errors.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3012/1: Corgi/Spitz LCD: Use bus_find_device to locate pxafb - fix compile...
Richard Purdie [Fri, 14 Oct 2005 15:07:26 +0000 (16:07 +0100)] 
[ARM] 3012/1: Corgi/Spitz LCD: Use bus_find_device to locate pxafb - fix compile error

Patch from Richard Purdie

Update corgi_lcd to use bus_find_device to locate the pxafb device
hence fixing a compile error.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3011/1: pxafb: Add ability to set device parent + fix spitz compile error
Richard Purdie [Fri, 14 Oct 2005 15:07:25 +0000 (16:07 +0100)] 
[ARM] 3011/1: pxafb: Add ability to set device parent + fix spitz compile error

Patch from Richard Purdie

Add a function to allow machines to set the parent of the pxa
framebuffer device. This means the power up/down sequence can be
controlled where required by the machine.

Update spitz to use the new function, fixing a compile error.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[SERIAL] Add SupraExpress 336i Sp ASVD modem ID
Baris Cicek [Fri, 14 Oct 2005 13:32:40 +0000 (14:32 +0100)] 
[SERIAL] Add SupraExpress 336i Sp ASVD modem ID

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 2980/1: Fix L7200 core.c compile
Deepak Saxena [Fri, 14 Oct 2005 11:49:15 +0000 (12:49 +0100)] 
[ARM] 2980/1: Fix L7200 core.c compile

Patch from Deepak Saxena

This patch fixes L7200 so that it builds in 2.6.latest. I do not
have the hardware so don't know if it actually still works, but
the changes are fairly trivial. I am not even sure if anyone
still maintains, uses, or cares about this machine type.

Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3009/1: S3C2410 - io.h offsets too large for LDRH/STRH
Ben Dooks [Fri, 14 Oct 2005 11:24:24 +0000 (12:24 +0100)] 
[ARM] 3009/1: S3C2410 - io.h offsets too large for LDRH/STRH

Patch from Ben Dooks

The __inwc/__outwc calls are capable of creating
LDRH and STRH instructions with offsets over 8bits
as GCC does not have a constraint for an 8bit
offset.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[SPARC64]: Eliminate PCI IOMMU dma mapping size limit.
David S. Miller [Fri, 14 Oct 2005 05:15:24 +0000 (22:15 -0700)] 
[SPARC64]: Eliminate PCI IOMMU dma mapping size limit.

The hairy fast allocator in the sparc64 PCI IOMMU code
has a hard limit of 256 pages.  Certain devices can
exceed this when performing very large I/Os.

So replace with a more simple allocator, based largely
upon the arch/ppc64/kernel/iommu.c code.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Consolidate common PCI IOMMU init code.
David S. Miller [Fri, 14 Oct 2005 04:10:08 +0000 (21:10 -0700)] 
[SPARC64]: Consolidate common PCI IOMMU init code.

All the PCI controller drivers were doing the same thing
setting up the IOMMU software state, put it all in one spot.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoMerge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Thu, 13 Oct 2005 23:10:54 +0000 (16:10 -0700)] 
Merge branch 'release' of /linux/kernel/git/aegl/linux-2.6

19 years ago[TCP]: Ratelimit debugging warning.
Herbert Xu [Thu, 13 Oct 2005 21:42:24 +0000 (14:42 -0700)] 
[TCP]: Ratelimit debugging warning.

Better safe than sorry.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[CONNECTOR]: Update documentation to match reality.
Evgeniy Polyakov [Thu, 13 Oct 2005 21:42:04 +0000 (14:42 -0700)] 
[CONNECTOR]: Update documentation to match reality.

Updated documentation to reflect 2.6.14 netlink changes
about socket options, multicasting and group number.
Please concider for 2.6.14.

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NET]: Disable NET_SCH_CLK_CPU for SMP x86 hosts
Andi Kleen [Thu, 13 Oct 2005 21:41:44 +0000 (14:41 -0700)] 
[NET]: Disable NET_SCH_CLK_CPU for SMP x86 hosts

Opterons with frequency scaling have fully unsynchronized TSCs
running at different frequencies, so using TSCs there is not a good idea.
Also some other x86 boxes have this problem. gettimeofday should be good
enough, so just disable it.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER]: Fix OOPSes on machines with discontiguous cpu numbering.
David S. Miller [Thu, 13 Oct 2005 21:41:23 +0000 (14:41 -0700)] 
[NETFILTER]: Fix OOPSes on machines with discontiguous cpu numbering.

Original patch by Harald Welte, with feedback from Herbert Xu
and testing by Sébastien Bernard.

EBTABLES, ARP tables, and IP/IP6 tables all assume that cpus
are numbered linearly.  That is not necessarily true.

This patch fixes that up by calculating the largest possible
cpu number, and allocating enough per-cpu structure space given
that.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[ARM] 3008/1: the exception table is not read-only
Nicolas Pitre [Thu, 13 Oct 2005 21:04:37 +0000 (22:04 +0100)] 
[ARM] 3008/1: the exception table is not read-only

Patch from Nicolas Pitre

... and therefore should not live in the .text section.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3007/1: BAST - add CONFIG_ISA to build
Ben Dooks [Thu, 13 Oct 2005 21:04:36 +0000 (22:04 +0100)] 
[ARM] 3007/1: BAST - add CONFIG_ISA to build

Patch from Ben Dooks

The Simtec EB2410ITX (BAST) has a PC/104 slot, and
therefore we should enable CONFIG_ISA to allow the
drivers for ISA peripherals to be selected

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Thu, 13 Oct 2005 16:59:32 +0000 (09:59 -0700)] 
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years ago[ARM] 3006/1: S3C2410 - arch/arm/mach-s3c2410 sparse fixes
Ben Dooks [Thu, 13 Oct 2005 15:46:35 +0000 (16:46 +0100)] 
[ARM] 3006/1: S3C2410 - arch/arm/mach-s3c2410 sparse fixes

Patch from Ben Dooks

Remove an unused variable from s3c2410.c and
ensure that items not needed to be exported from
s3c2440.c are declared static.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3005/1: S3C2440 - add definition for s3c2440_set_dsc() call in hardware.h
Ben Dooks [Thu, 13 Oct 2005 15:46:35 +0000 (16:46 +0100)] 
[ARM] 3005/1: S3C2440 - add definition for s3c2440_set_dsc() call in hardware.h

Patch from Ben Dooks

include/asm-arm/arch-s3c2410/hardware.h was missing
the definition for s3c2440_set_dsc()

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Thu, 13 Oct 2005 02:08:10 +0000 (19:08 -0700)] 
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 13 Oct 2005 02:07:59 +0000 (19:07 -0700)] 
Merge /pub/scm/linux/kernel/git/davem/net-2.6

19 years agoMerge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Thu, 13 Oct 2005 02:07:38 +0000 (19:07 -0700)] 
Merge branch 'upstream-fixes' of /linux/kernel/git/jgarzik/libata-dev

19 years agoMerge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Thu, 13 Oct 2005 02:07:19 +0000 (19:07 -0700)] 
Merge branch 'upstream-fixes' of /linux/kernel/git/jgarzik/netdev-2.6

19 years ago[TCP]: Add code to help track down "BUG at net/ipv4/tcp_output.c:438!"
Herbert Xu [Wed, 12 Oct 2005 22:59:39 +0000 (15:59 -0700)] 
[TCP]: Add code to help track down "BUG at net/ipv4/tcp_output.c:438!"

This is the second report of this bug.  Unfortunately the first
reporter hasn't been able to reproduce it since to provide more
debugging info.

So let's apply this patch for 2.6.14 to

1) Make this non-fatal.
2) Provide the info we need to track it down.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETPOLL]: wrong return for null netpoll_poll_lock()
Ben Dooks [Wed, 12 Oct 2005 22:12:21 +0000 (15:12 -0700)] 
[NETPOLL]: wrong return for null netpoll_poll_lock()

When netpoll is not being used, the macro that
defines the removed routing netpoll_poll_lock
defines the return as zero, but the real
routine returns a `void *`

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[BRIDGE]: fix race on bridge del if
Stephen Hemminger [Wed, 12 Oct 2005 22:10:01 +0000 (15:10 -0700)] 
[BRIDGE]: fix race on bridge del if

This fixes the RCU race on bridge delete interface.  Basically,
the network device has to be detached from the bridge in the first
step (pre-RCU), rather than later. At that point, no more bridge traffic
will come in, and the other code will not think that network device
is part of a bridge.

This should also fix the XEN test problems.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Fix boot failures on SunBlade-150
David S. Miller [Wed, 12 Oct 2005 19:22:46 +0000 (12:22 -0700)] 
[SPARC64]: Fix boot failures on SunBlade-150

The sequence to move over to the Linux trap tables from
the firmware ones needs to be more air tight.  It turns
out that to be %100 safe we do need to be able to translate
OBP mappings in our TLB miss handlers early.

In order not to eat up a lot of kernel image memory with
static page tables, just use the translations array in
the OBP TLB miss handlers.  That solves the bulk of the
problem.

Furthermore, to make sure the OBP TLB miss path will work
even before the fixed MMU globals are loaded, explicitly
load %g1 to TLB_SFSR at the beginning of the i-TLB and
d-TLB miss handlers.

To ease the OBP TLB miss walking of the prom_trans[] array,
we sort it then delete all of the non-OBP entries in there
(for example, there are entries for the kernel image itself
which we're not interested in at all).

We also save about 32K of kernel image size with this change.
Not a bad side effect :-)

There are still some reasons why trampoline.S can't use the
setup_trap_table() yet.  The most noteworthy are:

1) OBP boots secondary processors with non-bias'd stack for
   some reason.  This is easily fixed by using a small bootup
   stack in the kernel image explicitly for this purpose.

2) Doing a firmware call via the normal C call prom_set_trap_table()
   goes through the whole OBP enter/exit sequence that saves and
   restores OBP and Linux kernel state in the MMUs.  This path
   unfortunately does a "flush %g6" while loading up the OBP locked
   TLB entries for the firmware call.

   If we setup the %g6 in the trampoline.S code properly, that
   is in the PAGE_OFFSET linear mapping, but we're not on the
   kernel trap table yet so those addresses won't translate properly.

   One idea is to do a by-hand firmware call like we do in the
   early bootup code and elsewhere here in trampoline.S  But this
   fails as well, as aparently the secondary processors are not
   booted with OBP's special locked TLB entries loaded.  These
   are necessary for the firwmare to processes TLB misses correctly
   up until the point where we take over the trap table.

This does need to be resolved at some point.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[ARM] 3003/1: SSP channel map register updates for pxa2xx
Liam Girdwood [Wed, 12 Oct 2005 18:58:12 +0000 (19:58 +0100)] 
[ARM] 3003/1: SSP channel map register updates for pxa2xx

Patch from Liam Girdwood

This patch updates the pxa2xx channel map registers definitions in
pxa-regs.h

Changes:-
  o Added description for SSP2 registers
  o Added definitions for SSP3 registers

Signed-off-by:Liam Girdwood <liam.girdwood@wolfsonmicro.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3002/1: Wrong parameter to uart_update_timeout() in drivers/serial/pxa.c
Lothar Wassmann [Wed, 12 Oct 2005 18:58:11 +0000 (19:58 +0100)] 
[ARM] 3002/1: Wrong parameter to uart_update_timeout() in drivers/serial/pxa.c

Patch from Lothar Wassmann

The function serial_pxa_set_termios() is calling uart_update_timeout()
with the baud rate divisor as third parameter, while
uart_update_timeout() expects the baud rate in this place.
This results in a bogus port->timeout which is proportional to the
baud rate.

Signed-off-by: Lothar Wassmann <LW@KARO-electronics.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 2978/1: nwfpe - clean up sparse errors
Ben Dooks [Wed, 12 Oct 2005 18:58:10 +0000 (19:58 +0100)] 
[ARM] 2978/1: nwfpe - clean up sparse errors

Patch from Ben Dooks

The NWFPE is producing a number of errors from sparse
due to not defining a number of functions in the
header files.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 2969/1: miscellaneous whitespace cleanup
George G. Davis [Wed, 12 Oct 2005 18:58:10 +0000 (19:58 +0100)] 
[ARM] 2969/1: miscellaneous whitespace cleanup

Patch from George G. Davis

Fix leading, trailing and other miscellaneous whitespace issues
in arch/arm/kernel/alignment.c.

Signed-off-by: George G. Davis <gdavis@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 2970/1: Use -mtune=arm1136j-s when building for CPU_V6 targets
George G. Davis [Wed, 12 Oct 2005 18:58:09 +0000 (19:58 +0100)] 
[ARM] 2970/1: Use -mtune=arm1136j-s when building for CPU_V6 targets

Patch from George G. Davis

When building for CPU_V6 targets, we should use -mtune=arm1136j-s rather
than -mtune=strongarm but fall back to the later in case someone is
using an older toolchain (although they should really upgrade instead).

Signed-off-by: George G. Davis <gdavis@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 2971/1: i.MX uart handle rts irq
Sascha Hauer [Wed, 12 Oct 2005 18:58:08 +0000 (19:58 +0100)] 
[ARM] 2971/1: i.MX uart handle rts irq

Patch from Sascha Hauer

handle rts interrupt

Signed-off-by: Giancarlo Formicuccia <giancarlo.formicuccia@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 2979/2: S3C2410 - add static to non-exported machine items
Ben Dooks [Wed, 12 Oct 2005 18:58:07 +0000 (19:58 +0100)] 
[ARM] 2979/2: S3C2410 - add static to non-exported machine items

Patch from Ben Dooks

Do not export items that are not needed by symbol name
elsewhere

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