Re: [USB-Storage Problem]:[USB3.0] The "urb->complete( )" can't be recalled after usb_submit_urb( )?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 18, 2010 at 02:20:00AM +0000, darian wrote:
> Hi,
>   I'm debugging a uasp driver under xhci kernel downloaded from:
> 
>      git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci.git

Did you grab the master branch, or another branch?  (Also, please CC me
if you're asking questions about the xHCI driver, otherwise it gets a
little lost in my mail filter rules.)

>   Now, the device can get the "INQUIRY" command. But during the data stage, 
> the uasp driver submit the urb by "usb_fill_bulk_urb" and "usb_submit_urb" 
> after evaluating, it return the valid return value.

Did it set urb->stream_id after calling usb_fill_bulk_urb()?  That
function won't set the stream ID for you.

> The problem is : callback 
> function " urb->complete( )" can't be recalled. The driver 
> enter "command_abort" after 20 seconds. I trace the prepare_transfer in xhci-
> driver, the uasp did pass the valid stream_id to it. Is there any advice to 
> locate the problem of xhci-hcd?

Turn on CONFIG_USB_HCD_XHCI_DEBUGGING, recompile, and send me the log
files.  Please attach the log files, as your mailer seems to wrap the
lines and makes it hard to read.

>   Besides, when I plug the USB3.0 device before insmod uasp driver, the xhci-
> hcd driver reponse the following info: 
>
> May 17 16:19:43 realsil-desktop kernel: [   10.480804]   alloc kstat_irqs on 
> node -1
> May 17 16:19:43 realsil-desktop kernel: [   10.480812] HDA Intel 0000:00:1b.0: 
> PCI INT A -> GSI 22 (level, low) -> IRQ 22
> May 17 16:19:43 realsil-desktop kernel: [   10.481046]   alloc irq_desc for 30 
> on node -1
> May 17 16:19:43 realsil-desktop kernel: [   10.481048]   alloc kstat_irqs on 
> node -1
> May 17 16:19:43 realsil-desktop kernel: [   10.481060] HDA Intel 0000:00:1b.0: 
> irq 30 for MSI/MSI-X
> May 17 16:19:43 realsil-desktop kernel: [   10.481089] HDA Intel 0000:00:1b.0: 
> setting latency timer to 64
> May 17 16:19:43 realsil-desktop kernel: [   10.664096] hda_codec: ALC889A: 
> BIOS auto-probing.
> May 17 16:19:43 realsil-desktop kernel: [   10.665457] input: HDA Digital 
> PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input4
> May 17 16:19:44 realsil-desktop kernel: [   11.598995] r8169 0000:04:00.0: 
> eth0: link down
> May 17 16:19:44 realsil-desktop kernel: [   11.599225] ADDRCONF(NETDEV_UP): 
> eth0: link is not ready
> May 17 16:20:55 realsil-desktop kernel: [   82.632041] xhci_hcd 0000:01:00.0: 
> Can't reset device (slot ID 1) in enabled/disabled state
> May 17 16:20:55 realsil-desktop kernel: [   82.632047] xhci_hcd 0000:01:00.0: 
> Not freeing device rings.

I can't be sure exactly what's going on here, but you'd only see the bit
about the "enabled/disabled state" if the host controller rejected a
reset device command with a context state error.  I'd need more
debugging to understand what exactly was going on there.

> May 17 16:20:55 realsil-desktop kernel: [   82.632058] usb 9-2: new full speed 
> USB device using xhci_hcd and address 0
> May 17 16:20:55 realsil-desktop kernel: [   82.632105] usb 9-2: Device not 
> responding to set address.
> May 17 16:20:55 realsil-desktop kernel: [   82.836068] usb 9-2: Device not 
> responding to set address.
> May 17 16:20:55 realsil-desktop kernel: [   83.040037] usb 9-2: device not 
> accepting address 0, error -71

Looks like the USB 3.0 device came back as a full speed device and then
refused to enumerate.

> May 17 16:20:55 realsil-desktop kernel: [   83.152560] xhci_hcd 0000:01:00.0: 
> Can't reset device (slot ID 2) in enabled/disabled state
> May 17 16:20:55 realsil-desktop kernel: [   83.152566] xhci_hcd 0000:01:00.0: 
> Not freeing device rings.
> May 17 16:20:55 realsil-desktop kernel: [   83.152582] usb 9-2: new full speed 
> USB device using xhci_hcd and address 0
> May 17 16:20:55 realsil-desktop kernel: [   83.152625] usb 9-2: Device not 
> responding to set address.
> May 17 16:20:55 realsil-desktop kernel: [   83.356067] usb 9-2: Device not 
> responding to set address.
> May 17 16:20:56 realsil-desktop kernel: [   83.560031] usb 9-2: device not 
> accepting address 0, error -71
> May 17 16:20:56 realsil-desktop kernel: [   83.672057] xhci_hcd 0000:01:00.0: 
> Can't reset device (slot ID 3) in enabled/disabled state
> May 17 16:20:56 realsil-desktop kernel: [   83.672063] xhci_hcd 0000:01:00.0: 
> Not freeing device rings.
> May 17 16:20:56 realsil-desktop kernel: [   83.672078] usb 9-2: new full speed 
> USB device using xhci_hcd and address 0
> May 17 16:20:56 realsil-desktop kernel: [   83.672131] usb 9-2: Device not 
> responding to set address.
> May 17 16:20:56 realsil-desktop kernel: [   83.876565] usb 9-2: Device not 
> responding to set address.
> May 17 16:20:56 realsil-desktop kernel: [   84.080523] usb 9-2: device not 
> accepting address 0, error -71
> May 17 16:20:56 realsil-desktop kernel: [   84.192548] xhci_hcd 0000:01:00.0: 
> Can't reset device (slot ID 4) in enabled/disabled state
> May 17 16:20:56 realsil-desktop kernel: [   84.192553] xhci_hcd 0000:01:00.0: 
> Not freeing device rings.
> May 17 16:20:56 realsil-desktop kernel: [   84.192567] usb 9-2: new full speed 
> USB device using xhci_hcd and address 0
> May 17 16:20:56 realsil-desktop kernel: [   84.192616] usb 9-2: Device not 
> responding to set address.
> May 17 16:20:57 realsil-desktop kernel: [   84.396568] usb 9-2: Device not 
> responding to set address.
> May 17 16:20:57 realsil-desktop kernel: [   84.600519] usb 9-2: device not 
> accepting address 0, error -71
> May 17 16:20:57 realsil-desktop kernel: [   84.600549] hub 9-0:1.0: unable to 
> enumerate USB device on port 2
> May 17 16:20:57 realsil-desktop kernel: [   84.728658] usb 9-1: new SuperSpeed 
> USB device using xhci_hcd and address 2
> May 17 16:20:57 realsil-desktop kernel: [   84.744525] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.744786] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.745217] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.745513] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.747385] usb 9-1: config 1 
> interface 0 has no altsetting 0
> May 17 16:20:57 realsil-desktop kernel: [   84.747391] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.747533] xhci_hcd 0000:01:00.0: 
> WARN: short transfer on control ep
> May 17 16:20:57 realsil-desktop kernel: [   84.747595] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.747921] xhci_hcd 0000:01:00.0: 
> WARN: short transfer on control ep
> May 17 16:20:57 realsil-desktop kernel: [   84.747986] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.748242] xhci_hcd 0000:01:00.0: 
> WARN: short transfer on control ep
> May 17 16:20:57 realsil-desktop kernel: [   84.748306] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.748790] xhci_hcd 0000:01:00.0: 
> WARN: short transfer on control ep
> May 17 16:20:57 realsil-desktop kernel: [   84.748989] Did not find alt 
> setting 0 for intf 0, config 1

It looks like your device didn't respond to the device descriptor
requests and doesn't advertise an alternate setting 0.  That could lead
to some issues.  What device is this?  Has it passed PIL certification,
or is it a prototype?

> May 17 16:20:57 realsil-desktop kernel: [   84.749042] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.749230] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.749579] xhci_hcd 0000:01:00.0: 
> WARN: short transfer on control ep
> May 17 16:20:57 realsil-desktop kernel: [   84.749668] XHCI-RING 
> prepare_transfer,before xhci_stream_id_to_ring,stream_id=0 
> May 17 16:20:57 realsil-desktop kernel: [   84.750402] xhci_hcd 0000:01:00.0: 
> WARN: short transfer on control ep

That's a pretty busted looking device.

Sarah Sharp
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux