diff options
author | klu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-01-11 07:06:00 +0000 |
---|---|---|
committer | klu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-01-11 07:06:00 +0000 |
commit | 38a7027076edc33e6edc203ede39016982e005fb (patch) | |
tree | e7123b679c42c76ee75e3c481b3660a373485b93 /EdkModulePkg/Bus/Pci/Ehci/Dxe/EhciSched.c | |
parent | 0e7bfce8d0dc29695d0eb141f16e7976abcc5486 (diff) | |
download | edk2-platforms-38a7027076edc33e6edc203ede39016982e005fb.tar.xz |
AsyncRequestPtr maybe NULL after its callback function is invoke. So Caching it temporary.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2217 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EdkModulePkg/Bus/Pci/Ehci/Dxe/EhciSched.c')
-rw-r--r-- | EdkModulePkg/Bus/Pci/Ehci/Dxe/EhciSched.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/EdkModulePkg/Bus/Pci/Ehci/Dxe/EhciSched.c b/EdkModulePkg/Bus/Pci/Ehci/Dxe/EhciSched.c index 1226d569cf..1a947058be 100644 --- a/EdkModulePkg/Bus/Pci/Ehci/Dxe/EhciSched.c +++ b/EdkModulePkg/Bus/Pci/Ehci/Dxe/EhciSched.c @@ -2997,6 +2997,7 @@ Returns: UINT32 TransferResult;
UINT8 *ReceiveBuffer;
UINT8 *ProcessBuffer;
+ EHCI_ASYNC_REQUEST *NextPtr;
Status = EFI_SUCCESS;
QtdHwPtr = NULL;
@@ -3042,6 +3043,8 @@ Returns: UpdateAsyncRequestTransfer (AsyncRequestPtr, TransferResult, ErrQtdPos);
+ NextPtr = AsyncRequestPtr->Next;
+
if (EFI_USB_NOERROR == TransferResult) {
if (AsyncRequestPtr->CallBackFunc != NULL) {
@@ -3069,8 +3072,7 @@ Returns: gBS->FreePool (ProcessBuffer);
}
- AsyncRequestPtr = AsyncRequestPtr->Next;
-
+ AsyncRequestPtr = NextPtr;
}
exit:
|