Re: [RFT] usbcore: Bug fix: system can't suspend with USB3.0 device connected to USB3.0 hub

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

 



On Tue, Apr 12, 2011 at 09:33:52PM -0400, CAI Qian wrote:
> > > Great! Can you test with just Andiry's work-around patch and Alan's
> > > patch? Andiry's 5 patches are too large to go into 2.6.39, so we
> > > need a quick fix for 2.6.39.
> > That is also working for me.
> > 
> > CAI Qian
> > > I noticed that there was one issue with the resume from hibernate on
> > > my
> > > system, and I'll send you a patch shortly.
> I have also noticed one major problem though that the USB 3.0 storage
> device is gone after the hibernate/resume.
> 
> usb 8-1: usb auto-suspend
> hub 8-0:1.0: hub_suspend
> usb usb8: bus auto-suspend
> xhci_hcd 0000:1a:00.0: suspend USB 2.0 root hub
> xhci_hcd 0000:1a:00.0: `MEM_WRITE_DWORD(3'b000, 32'hffffc90012858450, 32'ha0002a0, 4'hf);
> xhci_hcd 0000:1a:00.0: `MEM_WRITE_DWORD(3'b000, 32'hffffc90012858440, 32'hc000e61, 4'hf);
> xhci_hcd 0000:1a:00.0: `MEM_WRITE_DWORD(3'b000, 32'hffffc90012858444, 32'h8, 4'hf);
> sd 5:0:0:0: [sdb] Unhandled error code
> sd 5:0:0:0: [sdb]  Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
> sd 5:0:0:0: [sdb] CDB: Read(10): 28 00 00 00 00 01 00 00 01 00
> end_request: I/O error, dev sdb, sector 8
> Buffer I/O error on device sdb, logical block 1
> sd 5:0:0:0: [sdb] Unhandled error code
> sd 5:0:0:0: [sdb]  Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
> sd 5:0:0:0: [sdb] CDB: Read(10): 28 00 00 00 00 01 00 00 01 00
> end_request: I/O error, dev sdb, sector 8
> Buffer I/O error on device sdb, logical block 1
> sd 5:0:0:0: [sdb] Unhandled error code
> sd 5:0:0:0: [sdb]  Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
> sd 5:0:0:0: [sdb] CDB: Read(10): 28 00 2b aa 14 74 00 00 01 00
> end_request: I/O error, dev sdb, sector 5860533152
> Buffer I/O error on device sdb, logical block 732566644

Yes, I noticed that issue too.  I think I know the cause: the xHCI USB
3.0 roothub is not being marked as having lost power over hibernate,
while the xHCI USB 2.0 roothub is.  The USB core still thinks the slot
context for the external USB 3.0 hub exists, and attempts to submit URBs
for it (which results in those -22 errors I saw).  The storage layer
isn't notified that the USB storage device has disconnected, so it
produces errors whenever we try to read from non-cached pages.

I have a patch to fix this.  However, I experienced a kernel oops the
first time I tried it, so I need to figure out if the patch caused the
oops, or there's another issue causing the crash.

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