On Tue, 17 Dec 2002, Matthew Dharm wrote:
> Greg, this patch fixes a stupid coding error on my part. Please apply.
Matthew,
I am using 2.5.59, and am having what seems to me to be a pretty similar
problem to Andre. This patch below is included in 2.5.59 however, and
didn't fix my problem.
To create the problem, I attach my Sony DSC P3 digitial camera (which
works as USB storage under 2.4.19), and turn it on. No mount has been
attempted at this stage...
Interesting bits of dmesg (with debugging turned on) are:
usb-storage: Status code 0; transferred 52/255
usb-storage: -- short transfer
usb-storage: CB data stage result is 0x1
usb-storage: -- CB transport device requiring auto-sense
usb-storage: Issuing auto-REQUEST_SENSE
usb-storage: usb_stor_ctrl_transfer(): rq=00 rqtype=21 value=0000 index=00 len=12
usb-storage: Status code 0; transferred 12/12
usb-storage: -- transfer complete
usb-storage: Call to usb_stor_ctrl_transfer() returned 0
usb-storage: usb_stor_bulk_transfer_buf(): xfer 18 bytes
usb-storage: Status code 0; transferred 18/18
usb-storage: -- transfer complete
usb-storage: CB data stage result is 0x0
usb-storage: -- Result from auto-sense is 0
usb-storage: -- code: 0x70, key: 0x5, ASC: 0x24, ASCQ: 0x0
usb-storage: Illegal Request: Invalid field in cdb
usb-storage: scsi cmd done, result=0x2
usb-storage: *** thread sleeping.
sda: test WP failed, assume Write Enabled
usb-storage: queuecommand() called
usb-storage: *** thread awakened.
usb-storage: Command MODE_SENSE (6 bytes)
usb-storage: 1a 08 08 00 04 00
usb-storage: Invoking Mode Translation
usb-storage: usb_stor_ctrl_transfer(): rq=00 rqtype=21 value=0000 index=00 len=12
usb-storage: Status code 0; transferred 12/12
usb-storage: -- transfer complete
usb-storage: Call to usb_stor_ctrl_transfer() returned 0
usb-storage: usb_stor_bulk_transfer_buf(): xfer 4 bytes
drivers/usb/host/uhci-hcd.c: uhci_result_common() failed with status 500000
[c151f2a0] link (0151f212) element (01520060)
0: [c1520060] link (00000001) e3 SPD IOC Stalled Babble Length=3 MaxLen=3 DT0
EndPt=2 Dev=3, PID=69(IN) (buf=00516e00)
usb-storage: Status code -75; transferred 4/4
usb-storage: -- unknown error
usb-storage: CB data stage result is 0x3
usb-storage: -- transport indicates error, resetting
usb-storage: CB_reset() called
usb-storage: Soft reset failed: -32
usb-storage: scsi cmd done, result=0x70000
usb-storage: *** thread sleeping.
usb-storage: queuecommand() called
usb-storage: *** thread awakened.
usb-storage: Command MODE_SENSE (6 bytes)
usb-storage: 1a 08 08 00 04 00
usb-storage: Invoking Mode Translation
usb-storage: usb_stor_ctrl_transfer(): rq=00 rqtype=21 value=0000 index=00 len=12
usb-storage: Status code 0; transferred 12/12
usb-storage: -- transfer complete
usb-storage: Call to usb_stor_ctrl_transfer() returned 0
usb-storage: usb_stor_bulk_transfer_buf(): xfer 4 bytes
drivers/usb/host/uhci-hcd.c: uhci_result_common() failed with status 500000
[c151f270] link (0151f212) element (01520060)
0: [c1520060] link (00000001) e3 SPD IOC Stalled Babble Length=3 MaxLen=3 DT1
EndPt=2 Dev=3, PID=69(IN) (buf=00516e00)
usb-storage: Status code -75; transferred 4/4
usb-storage: -- unknown error
usb-storage: CB data stage result is 0x3
usb-storage: -- transport indicates error, resetting
usb-storage: CB_reset() called
usb-storage: Soft reset failed: -32
usb-storage: scsi cmd done, result=0x70000
usb-storage: *** thread sleeping.
usb-storage: queuecommand() called
usb-storage: *** thread awakened.
usb-storage: Command MODE_SENSE (6 bytes)
usb-storage: 1a 08 08 00 04 00
usb-storage: Invoking Mode Translation
usb-storage: usb_stor_ctrl_transfer(): rq=00 rqtype=21 value=0000 index=00 len=12
usb-storage: Status code 0; transferred 12/12
usb-storage: -- transfer complete
usb-storage: Call to usb_stor_ctrl_transfer() returned 0
usb-storage: usb_stor_bulk_transfer_buf(): xfer 4 bytes
drivers/usb/host/uhci-hcd.c: uhci_result_common() failed with status 500000
[c151f2a0] link (0151f212) element (01520060)
0: [c1520060] link (00000001) e3 SPD IOC Stalled Babble Length=3 MaxLen=3 DT0
EndPt=2 Dev=3, PID=69(IN) (buf=00516e00)
usb-storage: Status code -75; transferred 4/4
usb-storage: -- unknown error
usb-storage: CB data stage result is 0x3
usb-storage: -- transport indicates error, resetting
usb-storage: CB_reset() called
usb-storage: Soft reset failed: -32
usb-storage: scsi cmd done, result=0x70000
usb-storage: *** thread sleeping.
usb-storage: queuecommand() called
usb-storage: *** thread awakened.
usb-storage: Command MODE_SENSE (6 bytes)
usb-storage: 1a 08 08 00 04 00
usb-storage: Invoking Mode Translation
usb-storage: usb_stor_ctrl_transfer(): rq=00 rqtype=21 value=0000 index=00 len=12
usb-storage: Status code 0; transferred 12/12
usb-storage: -- transfer complete
usb-storage: Call to usb_stor_ctrl_transfer() returned 0
usb-storage: usb_stor_bulk_transfer_buf(): xfer 4 bytes
drivers/usb/host/uhci-hcd.c: uhci_result_common() failed with status 500000
[c151f270] link (0151f212) element (01520060)
0: [c1520060] link (00000001) e3 SPD IOC Stalled Babble Length=3 MaxLen=3 DT1
EndPt=2 Dev=3, PID=69(IN) (buf=00516e00)
usb-storage: Status code -75; transferred 4/4
usb-storage: -- unknown error
usb-storage: CB data stage result is 0x3
usb-storage: -- transport indicates error, resetting
usb-storage: CB_reset() called
usb-storage: Soft reset failed: -32
usb-storage: scsi cmd done, result=0x70000
usb-storage: *** thread sleeping.
usb-storage: queuecommand() called
usb-storage: *** thread awakened.
usb-storage: Command MODE_SENSE (6 bytes)
usb-storage: 1a 08 08 00 04 00
usb-storage: Invoking Mode Translation
usb-storage: usb_stor_ctrl_transfer(): rq=00 rqtype=21 value=0000 index=00 len=12
usb-storage: Status code 0; transferred 12/12
usb-storage: -- transfer complete
usb-storage: Call to usb_stor_ctrl_transfer() returned 0
usb-storage: usb_stor_bulk_transfer_buf(): xfer 4 bytes
drivers/usb/host/uhci-hcd.c: uhci_result_common() failed with status 500000
[c151f2a0] link (0151f212) element (01520060)
0: [c1520060] link (00000001) e3 SPD IOC Stalled Babble Length=3 MaxLen=3 DT0
EndPt=2 Dev=3, PID=69(IN) (buf=00516e00)
usb-storage: Status code -75; transferred 4/4
usb-storage: -- unknown error
usb-storage: CB data stage result is 0x3
usb-storage: -- transport indicates error, resetting
usb-storage: CB_reset() called
usb-storage: Soft reset failed: -32
usb-storage: scsi cmd done, result=0x70000
usb-storage: *** thread sleeping.
sda: asking for cache data failed
sda: assuming drive cache: write through
sda:<3>Buffer I/O error on device sd(8,0), logical block 0
Any hints?
Thanks,
Mikal
> Content-Description: Patch to fix deferencing of null interrupt endpoint
> > # This is a BitKeeper generated patch for the following project:
> > # Project Name: greg k-h's linux 2.5 USB kernel tree
> > # This patch format is intended for GNU patch command version 2.5 or higher.
> > # This patch includes the following deltas:
> > # ChangeSet 1.993 -> 1.994
> > # drivers/usb/storage/usb.c 1.58 -> 1.59
> > #
> > # The following is the BitKeeper ChangeSet Log
> > # --------------------------------------------
> > # 02/12/17 [EMAIL PROTECTED] 1.994
> > # Don't try to dereference the interrupt endpoint if it doesn't exist.
> > # --------------------------------------------
> > #
> > diff -Nru a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
> > --- a/drivers/usb/storage/usb.c Tue Dec 17 11:01:00 2002
> > +++ b/drivers/usb/storage/usb.c Tue Dec 17 11:01:00 2002
> > @@ -728,9 +728,13 @@
> > USB_ENDPOINT_NUMBER_MASK;
> > ss->ep_out = ep_out->bEndpointAddress &
> > USB_ENDPOINT_NUMBER_MASK;
> > - ss->ep_int = ep_int->bEndpointAddress &
> > - USB_ENDPOINT_NUMBER_MASK;
> > - ss->ep_bInterval = ep_int->bInterval;
> > + if (ep_int) {
> > + ss->ep_int = ep_int->bEndpointAddress &
> > + USB_ENDPOINT_NUMBER_MASK;
> > + ss->ep_bInterval = ep_int->bInterval;
> > + }
> > + else
> > + ss->ep_int = ss->ep_bInterval = 0;
> >
> > /* allocate the URB, the usb_ctrlrequest, and the IRQ URB */
> > if (usb_stor_allocate_urbs(ss))
> > @@ -771,9 +775,13 @@
> > USB_ENDPOINT_NUMBER_MASK;
> > ss->ep_out = ep_out->bEndpointAddress &
> > USB_ENDPOINT_NUMBER_MASK;
> > - ss->ep_int = ep_int->bEndpointAddress &
> > - USB_ENDPOINT_NUMBER_MASK;
> > - ss->ep_bInterval = ep_int->bInterval;
> > + if (ep_int) {
> > + ss->ep_int = ep_int->bEndpointAddress &
> > + USB_ENDPOINT_NUMBER_MASK;
> > + ss->ep_bInterval = ep_int->bInterval;
> > + }
> > + else
> > + ss->ep_int = ss->ep_bInterval = 0;
> >
> > /* establish the connection to the new device */
> > ss->ifnum = ifnum;
>
>
>
--
Michael Still ([EMAIL PROTECTED]) | Stage 1: Steal underpants
http://www.stillhq.com | Stage 2: ????
UTC + 11 | Stage 3: Profit
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel