johannes-nivus opened a new pull request #1624: URL: https://github.com/apache/incubator-nuttx/pull/1624
Avoid race conditions during freeing of queue head structures by using Async Advance Doorbell. ## Summary During rewrite of FTDI FT232 driver (which will be a seperate PR), I realized that the EHCI host controller sometimes suddenly stops (RUN/STOP 0 HALTED 1). I tracked that down to interleaved in and out transfers which were causing race conditions between the host controller and the driver during QH unlink/reuse. EHCI Spec (4.8.2 Removing Queue Heads from Asynchronous Schedule) proposes the use of the Async Advance Doorbell mechanism to overcome that issue. ## Impact The unlinked QH are tagged and the Async Advance Doorbell process is started. When the corresponding interrupt occurs the QH are put on the free list. ## Testing Freedom K28 board, with modified FT2332R driver with a small stresstest application. Please ignore "error: Mixed case identifier found" complaints, they are related to a header file. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
