aboutsummaryrefslogtreecommitdiff
path: root/lib/locking-selftest.c
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2009-10-06 14:07:57 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2009-10-09 13:52:08 -0700
commitf1a0743bc0e7a30c032b1eb78f6a2b0f805b4597 (patch)
treef2b86a85b8a0a1c32d362f1e436b9ab32edfa114 /lib/locking-selftest.c
parenta5f6005d7b1821d2085d9749b56500a8f2610924 (diff)
USB: storage: When a device returns no sense data, call it a Hardware Error
This patch (as1294) fixes a problem that has plagued users for several kernel releases. Some USB mass-storage devices don't return any sense data when they encounter certain kinds of errors. The SCSI layer interprets this to mean that the operation should be retried, and the same thing happens -- over and over again with no limit. In some circumstances (such as when a bus reset occurs) that is the right thing to do, but not here. The patch checks for this condition (a transport failure with no sense data) and changes the result code to DID_ERROR and the sense code to Hardware Error. This does get only a limited number of retries, and so the command will fail relatively quickly instead of getting stuck in an infinite loop. This fixes a large part of Bugzilla #14118. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Tested-by: Mantas Mikulenas <grawity@gmail.com> CC: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'lib/locking-selftest.c')
0 files changed, 0 insertions, 0 deletions