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]


Reply via email to