EHCI: Fixed a condition where the queue list change lock could deadlock. Turns out LockGuard here gets deconstructed at the end of the function call, but if the dequeue status bit is set, a new thread will be created and a reschedule will occur. This may switch to a thread which receives a now-complete USB transfer status, and creates a new transaction, which causes a deadlock.
EHCI: Fixed a condition where the queue list change lock could deadlock. Turns out LockGuard here gets deconstructed at the end of the function call, but if the dequeue status bit is set, a new thread will be created and a reschedule will occur. This may switch to a thread which receives a now-complete USB transfer status, and creates a new transaction, which causes a deadlock.

jmolloy/pedigree,jmolloy/pedigree,jmolloy/pedigree,jmolloy/pedigree,jmolloy/pedigree,jmolloy/pedigree,jmolloy/pedigree