Command ring abort xhci_handshake question

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

 



Hello All,

Recently I’ve been troubleshooting a problem with the host controller dying and noticed that when the controller dies, the system was unresponsive for a _long_ period of time.  When I explored the code a bit, I saw that xhci_handshake will spin with interrupts disabled for up to 5 seconds.  I also saw places where it would spin for up to 10 seconds (I have not experienced this though…).  5 seconds with interrupts disabled seems like an eternity.

Is there a reason that it’s done this way?  It looks like the code was inherited from ehci, so the code has been used for a long period of time.

Would it be possible to wait for the command ring stopped event for 5 seconds, then check the CRR bit and halt and die if it’s not cleared?

Thanks!

Seth




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

  Powered by Linux