Here is a small patch...

--- linux-2.4.17.orig/drivers/usb/storage/transport.c   Thu Feb  7 17:58:04 2002
+++ linux/drivers/usb/storage/transport.c       Thu Feb  7 18:11:09 2002
@@ -1124,6 +1130,9 @@
        if (result == -ENOENT)
                return USB_STOR_TRANSPORT_ABORTED;
 
+       if (result == -ECONNRESET) 
+               return USB_STOR_TRANSPORT_ABORTED;
+
        /* did the attempt to read the CSW fail? */
        if (result == -EPIPE) {
                US_DEBUGP("clearing endpoint halt for pipe 0x%x\n", pipe);

to resolve a problem with a pending request as illustrated in the following
debug log:

# here a tranfer while intializing the storage device doesn't succeed...
Feb  6 22:06:26 lupo kernel: usb-storage: usb_stor_transfer_partial(): xfer 
255 bytes
Feb  6 22:06:26 lupo kernel: usb-storage: usb_stor_bulk_msg: submit urb
Feb  6 22:06:26 lupo kernel: usb-storage: usb_stor_bulk_msg: wait for 
completion
Feb  6 22:06:26 lupo kernel: usb-storage: usb_stor_blocking_completion
Feb  6 22:06:26 lupo kernel: usb-storage: usb_stor_bulk_msg() returned 0 
xferred 16/255
Feb  6 22:06:26 lupo kernel: usb-storage: Bulk data transfer result 0x1
# this CSW request never gets completed
Feb  6 22:06:26 lupo kernel: usb-storage: Attempting to get CSW...
Feb  6 22:06:26 lupo kernel: usb-storage: usb_stor_bulk_msg: submit urb
Feb  6 22:06:26 lupo kernel: usb-storage: usb_stor_bulk_msg: wait for 
completion
# 30 secs later command_abort invokes usb_unlink_usb, 
# which returnes ECONNRESET
Feb  6 22:06:56 lupo kernel: usb-storage: command_abort() called
Feb  6 22:06:56 lupo kernel: usb-storage: usb_stor_blocking_completion
# ECONNRESET isn't handled as abort to invoke "complete(&(us->notify))" 
# on the pending request later in the control thread 
# the usb-storage module is "initializing" eternally
Feb  6 22:06:56 lupo kernel: usb-storage: Bulk status result = -104
Feb  6 22:06:56 lupo kernel: usb-storage: Bulk reset requested
Feb  6 22:07:02 lupo kernel: usb-storage: Bulk soft reset completed
Feb  6 22:07:02 lupo kernel: usb-storage: -- transport indicates transport 
failure
Feb  6 22:07:02 lupo kernel: usb-storage: -- converting 10 byte sense data to 
6 byte
Feb  6 22:07:02 lupo kernel: usb-storage: Command will be truncated to fit in 
SENSE6 buffer.
Feb  6 22:07:02 lupo kernel: usb-storage: scsi cmd done, result=0x70000
Feb  6 22:07:02 lupo kernel: usb-storage: *** thread sleeping.
Feb  6 22:24:50 lupo -- MARK --

  Wolfram.

-- 
Wolfram Diestel <[EMAIL PROTECTED]>

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to