VirtualBox

Changeset 55414 in vbox


Ignore:
Timestamp:
Apr 23, 2015 8:31:35 PM (9 years ago)
Author:
vboxsync
Message:

USB,EHCI,OHCI: release and reacquire the critical section when submitting a new URB, fixes lock order violation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/USB/DevOHCI.cpp

    r54381 r55414  
    27642764         pUrb->pszDesc, TdAddr, EdAddr, pUrb->cbData));
    27652765
     2766    RTCritSectLeave(&pThis->CritSect);
    27662767    int rc = VUSBIRhSubmitUrb(pThis->RootHub.pIRhConn, pUrb, &pThis->RootHub.Led);
     2768    RTCritSectEnter(&pThis->CritSect);
    27672769    if (RT_SUCCESS(rc))
    27682770        return true;
     
    29282930    Log(("%s: ohciServiceTdMultiple: submitting cbData=%#x EdAddr=%#010x cTds=%d TdAddr0=%#010x\n",
    29292931         pUrb->pszDesc, pUrb->cbData, EdAddr, cTds, TdAddr));
     2932    RTCritSectLeave(&pThis->CritSect);
    29302933    int rc = VUSBIRhSubmitUrb(pThis->RootHub.pIRhConn, pUrb, &pThis->RootHub.Led);
     2934    RTCritSectEnter(&pThis->CritSect);
    29312935    if (RT_SUCCESS(rc))
    29322936        return true;
     
    31523156    Log(("%s: ohciServiceIsochronousTd: submitting cbData=%#x cIsocPkts=%d EdAddr=%#010x TdAddr=%#010x SF=%#x (%#x)\n",
    31533157         pUrb->pszDesc, pUrb->cbData, pUrb->cIsocPkts, EdAddr, ITdAddr, pITd->HwInfo & ITD_HWINFO_SF, pThis->HcFmNumber));
     3158    RTCritSectLeave(&pThis->CritSect);
    31543159    int rc = VUSBIRhSubmitUrb(pThis->RootHub.pIRhConn, pUrb, &pThis->RootHub.Led);
     3160    RTCritSectEnter(&pThis->CritSect);
    31553161    if (RT_SUCCESS(rc))
    31563162        return true;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette