Changeset 106281 in vbox
- Timestamp:
- Oct 10, 2024 9:16:39 AM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/USB/DevOHCI.cpp
r106061 r106281 3888 3888 if (enmDir != VUSBDIRECTION_INVALID) 3889 3889 { 3890 /* Must leave the lock here, see ohciR3ServicePeriodicList for details. */ 3891 ohciR3Unlock(pThisCC); 3890 3892 pThisCC->RootHub.pIRhConn->pfnAbortEpByAddr(pThisCC->RootHub.pIRhConn, uAddr, uEndPt, enmDir); 3893 ohciR3Lock(pThisCC); 3894 /** @todo should we re-read Ed here? */ 3891 3895 } 3892 3896 } … … 3948 3952 if (enmDir != VUSBDIRECTION_INVALID) 3949 3953 { 3954 /* Must leave the lock here, see ohciR3ServicePeriodicList for details. */ 3955 ohciR3Unlock(pThisCC); 3950 3956 pThisCC->RootHub.pIRhConn->pfnAbortEpByAddr(pThisCC->RootHub.pIRhConn, uAddr, uEndPt, enmDir); 3957 ohciR3Lock(pThisCC); 3958 /** @todo should we re-read Ed here? */ 3951 3959 } 3952 3960 } … … 4112 4120 * cancel outstanding URBs, if any. 4113 4121 * First we need to determine the transfer direction, which may fail(!). 4122 * 4123 * Note! We *must* leave the critsect before calling the abort function as 4124 * it typically wants to send synchronous requests to the URB IO thread 4125 * which will enter the critsect when responding. ohciR3StartFrame 4126 * entered the critsect and I (bird) can't immediately spot any cached 4127 * state info that could get obsoleted while we're doing this (except 4128 * some logging stuff). 4114 4129 */ 4115 4130 uint8_t uAddr = Ed.hwinfo & ED_HWINFO_FUNCTION; … … 4118 4133 if (enmDir != VUSBDIRECTION_INVALID) 4119 4134 { 4135 ohciR3Unlock(pThisCC); 4120 4136 pThisCC->RootHub.pIRhConn->pfnAbortEpByAddr(pThisCC->RootHub.pIRhConn, uAddr, uEndPt, enmDir); 4137 ohciR3Lock(pThisCC); 4138 /** @todo should we re-read Ed here? */ 4121 4139 } 4122 4140 }
Note:
See TracChangeset
for help on using the changeset viewer.