• Alan Stern's avatar
    USB: storage: When a device returns no sense data, call it a Hardware Error · 4e45dde8
    Alan Stern authored
    commit f1a0743b upstream.
    
    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: default avatarAlan Stern <stern@rowland.harvard.edu>
    Tested-by: default avatarMantas Mikulenas <grawity@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    4e45dde8
transport.c 40.1 KB