Re: usb: host: xhci: stalled endpoint ring not cleared on empty td_list

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

 



Hi,

Christian Gromm <christian.gr...@xxxxxxxxxxxxx> writes:
> we observe an issue with a td_list running empty and an
> endpoint being stalled at the same time on
>
> Linux ihu-low 4.1.27-abl #1 SMP PREEMPT Mon Mar 20 13:51:51 CET 2017 
> x86_64 x86_64 x86_64 GNU/Linux.

we've recently observed the same problem with "Linux ihu-low 4.1.27-abl" kernel.
In our case it was discovered from the logs that URBs, that are being killed by “usb_kill_anchored_urbs()”, are still being used by “handle_tx_event()”. Sooner or later the same URB was used and killed at the same time, which caused the “WARN Event TRB for slot 2 ep 28 with no TDs queued?” error message, and the whole communication stopped.

The developer, who introduced the USB anchors, has added some demo code in the file drivers/usb/usb-skeleton.c. In this file he is invoking “usb_wait_anchor_empty_timeout()” before he calls “usb_kill_anchored_urbs()”. If I understand it correctly, the purpose of this function is to wait until all URBs have been processed.
Therefore I suggested to do the same in the most driver. Fortunately it seems that this resolved our problem: We've never seen this problem anymore.

BR
Rolf
--
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