GitHub/MotorolaMobilityLLC/kernel-slsi.git
19 years agoRevert "RPC: stops the release_pipe() funtion from being called twice"
Trond Myklebust [Thu, 27 Oct 2005 23:08:18 +0000 (19:08 -0400)]
Revert "RPC: stops the release_pipe() funtion from being called twice"

This reverts 747c5534c9a6da4aa87e7cdc2209ea98ea27f381 commit.

19 years agoMerge branch 'master' of ssh://rsync.linux-nfs.org/home/trondmy/www_sites/rsync.linux...
Trond Myklebust [Fri, 21 Oct 2005 17:42:58 +0000 (10:42 -0700)]
Merge branch 'master' of ssh://linux-nfs.org/home/trondmy/www_sites/rsync.linux-nfs.org/pub/linux/nfs-2.6

19 years agoMerge /home/trondmy/scm/kernel/git/torvalds/linux-2.6
Trond Myklebust [Thu, 20 Oct 2005 21:25:44 +0000 (14:25 -0700)]
Merge /home/trondmy/scm/kernel/git/torvalds/linux-2.6

19 years agoNFSv4: Fix up locking for nfs4_state_owner
Trond Myklebust [Thu, 20 Oct 2005 21:22:47 +0000 (14:22 -0700)]
NFSv4: Fix up locking for nfs4_state_owner
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Final tweak to sequence id
Trond Myklebust [Thu, 20 Oct 2005 21:22:41 +0000 (14:22 -0700)]
NFSv4: Final tweak to sequence id

 Sacrifice queueing fairness for performance.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoLinux v2.6.14-rc5
Linus Torvalds [Thu, 20 Oct 2005 06:23:05 +0000 (23:23 -0700)]
Linux v2.6.14-rc5

The -rc4 release was supposed to be the last -rc, but here goes.  The
RCU fixes and the swiotlb changes need an -rc for final testing.

19 years ago[PATCH] build fix for uml/amd64
Al Viro [Tue, 18 Oct 2005 21:45:17 +0000 (22:45 +0100)]
[PATCH] build fix for uml/amd64

Missing half of the [PATCH] uml: Fix sysrq-r support for skas mode
We need to remove these (UPT_[DEFG]S) from the read side as well as the
write one - otherwise it simply won't build.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] scsi_error thread exits in TASK_INTERRUPTIBLE state.
Steven Rostedt [Wed, 19 Oct 2005 12:22:13 +0000 (08:22 -0400)]
[PATCH] scsi_error thread exits in TASK_INTERRUPTIBLE state.

Found in the -rt patch set.  The scsi_error thread likely will be in the
TASK_INTERRUPTIBLE state upon exit.  This patch fixes this bug.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc64: update defconfigs
Paul Mackerras [Wed, 19 Oct 2005 22:34:56 +0000 (08:34 +1000)]
[PATCH] ppc64: update defconfigs

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
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 agoRPCSEC_GSS: krb5 cleanup
J. Bruce Fields [Thu, 13 Oct 2005 20:55:23 +0000 (16:55 -0400)]
RPCSEC_GSS: krb5 cleanup

 Remove some senseless wrappers.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoRPCSEC_GSS remove all qop parameters
J. Bruce Fields [Thu, 13 Oct 2005 20:55:18 +0000 (16:55 -0400)]
RPCSEC_GSS remove all qop parameters

 Not only are the qop parameters that are passed around throughout the gssapi
 unused by any currently implemented mechanism, but there appears to be some
 doubt as to whether they will ever be used.  Let's just kill them off for now.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoRPCSEC_GSS: Add support for privacy to krb5 rpcsec_gss mechanism.
J. Bruce Fields [Thu, 13 Oct 2005 20:55:13 +0000 (16:55 -0400)]
RPCSEC_GSS: Add support for privacy to krb5 rpcsec_gss mechanism.

 Add support for privacy to the krb5 rpcsec_gss mechanism.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoRPCSEC_GSS: krb5 pre-privacy cleanup
J. Bruce Fields [Thu, 13 Oct 2005 20:55:08 +0000 (16:55 -0400)]
RPCSEC_GSS: krb5 pre-privacy cleanup

 The code this was originally derived from processed wrap and mic tokens using
 the same functions.  This required some contortions, and more would be required
 with the addition of xdr_buf's, so it's better to separate out the two code
 paths.

 In preparation for adding privacy support, remove the last vestiges of the
 old wrap token code.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoRPCSEC_GSS: Simplify rpcsec_gss crypto code
J. Bruce Fields [Thu, 13 Oct 2005 20:55:03 +0000 (16:55 -0400)]
RPCSEC_GSS: Simplify rpcsec_gss crypto code

 Factor out some code that will be shared by privacy crypto routines

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoRPCSEC_GSS: client-side privacy support
J. Bruce Fields [Thu, 13 Oct 2005 20:54:58 +0000 (16:54 -0400)]
RPCSEC_GSS: client-side privacy support

 Add the code to the client side to handle privacy.  This is dead code until
 we actually add privacy support to krb5.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoRPCSEC_GSS: cleanup au_rslack calculation
J. Bruce Fields [Thu, 13 Oct 2005 20:54:53 +0000 (16:54 -0400)]
RPCSEC_GSS: cleanup au_rslack calculation

 Various xdr encode routines use au_rslack to guess where the reply argument
 will end up, so we can set up the xdr_buf to recieve data into the right place
 for zero copy.

 Currently we calculate the au_rslack estimate when we check the verifier.
 Normally this only depends on the verifier size.  In the integrity case we add
 a few bytes to allow for a length and sequence number.

 It's a bit simpler to calculate only the verifier size when we check the
 verifier, and delay the full calculation till we unwrap.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoSUNRPC: Retry wrap in case of memory allocation failure.
J. Bruce Fields [Thu, 13 Oct 2005 20:54:48 +0000 (16:54 -0400)]
SUNRPC: Retry wrap in case of memory allocation failure.

 For privacy we need to allocate extra pages to hold encrypted page data when
 wrapping requests.  This allocation may fail, and we handle that case by
 waiting and retrying.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoSUNRPC: Provide a callback to allow free pages allocated during xdr encoding
J. Bruce Fields [Thu, 13 Oct 2005 20:54:43 +0000 (16:54 -0400)]
SUNRPC: Provide a callback to allow free pages allocated during xdr encoding

 For privacy, we need to allocate pages to store the encrypted data (passed
 in pages can't be used without the risk of corrupting data in the page cache).
 So we need a way to free that memory after the request has been transmitted.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoSUNRPC: Add support for privacy to generic gss-api code.
J. Bruce Fields [Thu, 13 Oct 2005 20:54:37 +0000 (16:54 -0400)]
SUNRPC: Add support for privacy to generic gss-api code.

 Add support for privacy to generic gss-api code.  This is dead code until we
 have both a mechanism that supports privacy and code in the client or server
 that uses it.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Fix acl buffer size
J. Bruce Fields [Thu, 13 Oct 2005 20:54:32 +0000 (16:54 -0400)]
NFSv4: Fix acl buffer size

 resp_len is passed in as buffer size to decode routine; make sure it's
 set right in case where userspace provides less than a page's worth of
 buffer.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: handle no acl attr
J. Bruce Fields [Thu, 13 Oct 2005 20:54:27 +0000 (16:54 -0400)]
NFSv4: handle no acl attr

 Stop handing garbage to userspace in the case where a weird server clears the
 acl bit in the getattr return (despite the fact that they've already claimed
 acl support.)

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoRPC: stops the release_pipe() funtion from being called twice
Steve Dickson [Wed, 19 Oct 2005 06:19:40 +0000 (23:19 -0700)]
RPC: stops the release_pipe() funtion from being called twice

 This patch stops the release_pipe() funtion from being called
 twice by invalidating the ops pointer in the rpc_inode
 when rpc_pipe_release() is called.

Signed-off-by: Steve Dickson <steved@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Fix an oopsable condition in nfs_free_seqid
Trond Myklebust [Wed, 19 Oct 2005 06:19:39 +0000 (23:19 -0700)]
NFSv4: Fix an oopsable condition in nfs_free_seqid

 Storing a pointer to the struct rpc_task in the nfs_seqid is broken
 since the nfs_seqid may be freed well after the task has been destroyed.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoMerge /home/trondmy/scm/kernel/git/torvalds/linux-2.6
Trond Myklebust [Tue, 18 Oct 2005 21:25:28 +0000 (14:25 -0700)]
Merge /home/trondmy/scm/kernel/git/torvalds/linux-2.6

19 years agoMerge branch 'master' of ssh://rsync.linux-nfs.org/home/trondmy/www_sites/rsync.linux...
Trond Myklebust [Tue, 18 Oct 2005 21:24:35 +0000 (14:24 -0700)]
Merge branch 'master' of ssh://linux-nfs.org/home/trondmy/www_sites/rsync.linux-nfs.org/pub/linux/nfs-2.6

19 years agoNFS: Fix rename of directory onto empty directory
Trond Myklebust [Tue, 18 Oct 2005 21:20:22 +0000 (14:20 -0700)]
NFS: Fix rename of directory onto empty directory

 If someone tries to rename a directory onto an empty directory, we
 currently fail and return EBUSY.
 This patch ensures that we try the rename if both source and target
 are directories, and that we fail with a correct error of EISDIR if
 the source is not a directory.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoFix Connectathon locking test failure
Trond Myklebust [Tue, 18 Oct 2005 21:20:21 +0000 (14:20 -0700)]
Fix Connectathon locking test failure

 We currently fail Connectathon test 6.10 in the case of 32-bit locks due
 to incorrect error checking.
 Also add support for l->l_len < 0 to 64-bit locks.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Ensure that we recover from the OPEN + OPEN_CONFIRM BAD_STATEID race
Trond Myklebust [Tue, 18 Oct 2005 21:20:21 +0000 (14:20 -0700)]
NFSv4: Ensure that we recover from the OPEN + OPEN_CONFIRM BAD_STATEID race

 If the server is in the unconfirmed OPEN state for a given open owner
 and receives a second OPEN for the same open owner, it will cancel the
 state of the first request and set up an OPEN_CONFIRM for the second.

 This can cause a race that is discussed in rfc3530 on page 181.

 The following patch allows the client to recover by retrying the
 original open request.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: If a delegated open fails, ensure that we return the delegation
Trond Myklebust [Tue, 18 Oct 2005 21:20:20 +0000 (14:20 -0700)]
NFSv4: If a delegated open fails, ensure that we return the delegation

 Unless of course the open fails due to permission issues.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Return delegations in case we're changing ACLs
Trond Myklebust [Tue, 18 Oct 2005 21:20:19 +0000 (14:20 -0700)]
NFSv4: Return delegations in case we're changing ACLs

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Return delegation upon rename or removal of file.
Trond Myklebust [Tue, 18 Oct 2005 21:20:19 +0000 (14:20 -0700)]
NFSv4: Return delegation upon rename or removal of file.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoVFS: Make link_path_walk set LOOKUP_CONTINUE before calling permission().
Trond Myklebust [Tue, 18 Oct 2005 21:20:18 +0000 (14:20 -0700)]
VFS: Make link_path_walk set LOOKUP_CONTINUE before calling permission().

 This will allow nfs_permission() to perform additional optimizations when
 walking the path, by folding the ACCESS(MAY_EXEC) call on the directory
 into the lookup revalidation.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years ago[NFS]: Check that the server returns a valid regular file to our OPEN request
Trond Myklebust [Tue, 18 Oct 2005 21:20:18 +0000 (14:20 -0700)]
[NFS]: Check that the server returns a valid regular file to our OPEN request

 Since it appears that some servers don't...

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Eliminate nfsv4 open race...
Trond Myklebust [Tue, 18 Oct 2005 21:20:17 +0000 (14:20 -0700)]
NFSv4: Eliminate nfsv4 open race...

 Make NFSv4 return the fully initialized file pointer with the
 stateid that it created in the lookup w/intent.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoVFS: Allow the filesystem to return a full file pointer on open intent
Trond Myklebust [Tue, 18 Oct 2005 21:20:16 +0000 (14:20 -0700)]
VFS: Allow the filesystem to return a full file pointer on open intent

 This is needed by NFSv4 for atomicity reasons: our open command is in
 fact a lookup+open, so we need to be able to propagate open context
 information from lookup() into the resulting struct file's
 private_data field.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years ago NFS: Fix up a race in the NFS implementation of GETLK
Trond Myklebust [Tue, 18 Oct 2005 21:20:16 +0000 (14:20 -0700)]
 NFS: Fix up a race in the NFS implementation of GETLK

 ...and fix a memory corruption bug due to improper use of memcpy() on
 a struct file_lock.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Fix up handling of open_to_lock sequence ids
Trond Myklebust [Tue, 18 Oct 2005 21:20:15 +0000 (14:20 -0700)]
NFSv4: Fix up handling of open_to_lock sequence ids

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Make NFS clean up byte range locks asynchronously
Trond Myklebust [Tue, 18 Oct 2005 21:20:15 +0000 (14:20 -0700)]
NFSv4: Make NFS clean up byte range locks asynchronously

 Currently we fail to do so if the process was signalled.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Add missing handling of OPEN_CONFIRM requests on CLAIM_DELEGATE_CUR.
Trond Myklebust [Tue, 18 Oct 2005 21:20:14 +0000 (14:20 -0700)]
NFSv4: Add missing handling of OPEN_CONFIRM requests on CLAIM_DELEGATE_CUR.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Remove nfs4_client->cl_sem from close() path
Trond Myklebust [Tue, 18 Oct 2005 21:20:13 +0000 (14:20 -0700)]
NFSv4: Remove nfs4_client->cl_sem from close() path

 We no longer need to worry about collisions between close() and the state
 recovery code, since the new close will automatically recheck the
 file state once it is done waiting on its sequence slot.

 Ditto for the nfs4_proc_locku() procedure.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Remove obsolete state_owner and lock_owner semaphores
Trond Myklebust [Tue, 18 Oct 2005 21:20:13 +0000 (14:20 -0700)]
NFSv4: Remove obsolete state_owner and lock_owner semaphores

 OPEN, CLOSE, etc no longer need these semaphores to ensure ordering of
 requests.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Fix a potential CLOSE race
Trond Myklebust [Tue, 18 Oct 2005 21:20:12 +0000 (14:20 -0700)]
NFSv4: Fix a potential CLOSE race

 Once the state_owner and lock_owner semaphores get removed, it will be
 possible for other OPEN requests to reopen the same file if they have
 lower sequence ids than our CLOSE call.
 This patch ensures that we recheck the file state once
 nfs_wait_on_sequence() has completed waiting.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoNFSv4: Add functions to order RPC calls
Trond Myklebust [Tue, 18 Oct 2005 21:20:12 +0000 (14:20 -0700)]
NFSv4: Add functions to order RPC calls

 NFSv4 file state-changing functions such as OPEN, CLOSE, LOCK,... are all
 labelled with "sequence identifiers" in order to prevent the server from
 reordering RPC requests, as this could cause its file state to
 become out of sync with the client.

 Currently the NFS client code enforces this ordering locally using
 semaphores to restrict access to structures until the RPC call is done.
 This, of course, only works with synchronous RPC calls, since the
 user process must first grab the semaphore.
 By dropping semaphores, and instead teaching the RPC engine to hold
 the RPC calls until they are ready to be sent, we can extend this
 process to work nicely with asynchronous RPC calls too.

 This patch adds a new list called "rpc_sequence" that defines the order
 of the RPC calls to be sent. We add one such list for each state_owner.
 When an RPC call is ready to be sent, it checks if it is top of the
 rpc_sequence list. If so, it proceeds. If not, it goes back to sleep,
 and loops until it hits top of the list.
 Once the RPC call has completed, it can then bump the sequence id counter,
 and remove itself from the rpc_sequence list, and then wake up the next
 sleeper.

 Note that the state_owner sequence ids and lock_owner sequence ids are
 all indexed to the same rpc_sequence list, so OPEN, LOCK,... requests
 are all ordered w.r.t. each other.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoRPC: allow call_encode() to delay transmission of an RPC call.
Trond Myklebust [Tue, 18 Oct 2005 21:20:11 +0000 (14:20 -0700)]
RPC: allow call_encode() to delay transmission of an RPC call.

 Currently, call_encode will cause the entire RPC call to abort if it returns
 an error. This is unnecessarily rigid, and gets in the way of attempts
 to allow the NFSv4 layer to order RPC calls that carry sequence ids.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoSUNRPC: Retry rpcbind requests if the server's portmapper isn't up
Chuck Lever [Fri, 7 Oct 2005 03:12:58 +0000 (23:12 -0400)]
SUNRPC: Retry rpcbind requests if the server's portmapper isn't up

 After a server crash/reboot, rebinding should always retry, otherwise
 requests on "hard" mounts will fail when they shouldn't.

 Test plan:
 Run a lock-intensive workload against a server while rebooting the server
 repeatedly.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
19 years agoMerge /home/trondmy/scm/kernel/git/torvalds/linux-2.6
Trond Myklebust [Tue, 18 Oct 2005 20:50:52 +0000 (13:50 -0700)]
Merge /home/trondmy/scm/kernel/git/torvalds/linux-2.6

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>