Hi Matt, Yes, that patch does eliminate the transfer length error message.
As for the "never initializes" part, I think that I just didn't wait long enough. With this patch applied to vanilla 2.5.42, I am seeing the [attached] longish Maxtor hard drive probing, with roughly 5-second timeouts between each "giveback urb" line, and failures in MODE SENSE, READ CAPACITY, and reading the partition table. This worked a few minutes earlier on 2.4.18. Suggestions? Thanks, ~Randy > ---------- Forwarded message ---------- > > I just sent a patch to Linus to fix this. Here it is for your testing: > > # This is a BitKeeper generated patch for the following project: > # Project Name: Linux kernel tree > # This patch format is intended for GNU patch command version 2.5 or higher. > # This patch includes the following deltas: > # ChangeSet 1.787 -> 1.788 > # drivers/scsi/sd.c 1.65 -> 1.66 > # > # The following is the BitKeeper ChangeSet Log > # -------------------------------------------- > # 02/10/12 [EMAIL PROTECTED] 1.788 > # Make the buffer length match the size of the request. > # -------------------------------------------- > # > diff -Nru a/drivers/scsi/sd.c b/drivers/scsi/sd.c > --- a/drivers/scsi/sd.c Sat Oct 12 21:25:43 2002 > +++ b/drivers/scsi/sd.c Sat Oct 12 21:25:43 2002 > @@ -916,7 +916,7 @@ > > SRpnt->sr_data_direction = SCSI_DATA_READ; > scsi_wait_req(SRpnt, (void *) cmd, (void *) buffer, > - 24, SD_TIMEOUT, MAX_RETRIES); > + 128, SD_TIMEOUT, MAX_RETRIES); > > the_result = SRpnt->sr_result; > retries--; > > As you can see, it's neither a protocol or a transport problem. It's a bad > initiator of a command. > > As for the 'never initializes' part... likely that's because an endpoint is > stalled, and somehow endpoint stalls can't be cleared anymore. > > Matt > > On Sat, Oct 12, 2002 at 10:30:12PM -0700, Randy.Dunlap wrote: > > > > Hi Matthew, > > > > Using 2.5.41 or 2.5.42, I'm getting lots of these messages: > > > > midway kernel: drivers/usb/core/hcd.c: giveback urb f75c1400 status -32 len 0 > > midway kernel: USB len=128, request_bufflen=24 > > plus dump_stack() output. > > > > I tracked it down to usb/storage/transport.c::usb_stor_transfer_length(). > > > > Is this a protocol or transport or USB device problem? > > > > How can I help with this? > > > > Also, the usb-storage module doesn't complete intializing/loading > > when this happens. > > > > --
drivers/usb/core/hub.c: new USB device 00:1f.2-1, assigned address 2 drivers/usb/core/usb.c: new device strings: Mfr=73, Product=90, SerialNumber=110 Product: Maxtor USB Drive Manufacturer: Maxtor SerialNumber: 1200E000022126098 Initializing USB Mass Storage driver... scsi1 : SCSI emulation for USB Mass Storage devices Vendor: Maxtor 4 Model: D040H2 Rev: DAH0 Type: Direct-Access ANSI SCSI revision: 02 Attached scsi disk sda at scsi1, channel 0, id 0, lun 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f75c3f80 status -32 len 0 sda : MODE SENSE failed. sda : status = 0, message = 00, host = 7, driver = 00 sda : sense not available. sda : assuming drive cache: write through drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e880 status -32 len 0 sda : READ CAPACITY failed. sda : status=0, message=00, host=7, driver=00 sda : sense not available. sda:<7>drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e300 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e300 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e300 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e300 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e300 status -32 len 0 SCSI disk error : host 1 channel 0 id 0 lun 0 return code = 70000 end_request: I/O error, dev 08:00, sector 0 Buffer I/O error on device sd(8,0), logical block 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e300 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e300 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e300 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e300 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f706e680 status -32 len 0 drivers/usb/core/hcd.c: giveback urb f7df7f00 status -32 len 0 SCSI disk error : host 1 channel 0 id 0 lun 0 return code = 70000 end_request: I/O error, dev 08:00, sector 0 Buffer I/O error on device sd(8,0), logical block 0 unable to read partition table WARNING: USB Mass Storage data integrity not assured USB Mass Storage device found at 2 drivers/usb/core/usb.c: registered new driver usb-storage USB Mass Storage support registered.
