Hi, Christian Gromm <christian.gr...@microchip.com> 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html