summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-11 07:06:00 +0000
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-11 07:06:00 +0000
commit38a7027076edc33e6edc203ede39016982e005fb (patch)
treee7123b679c42c76ee75e3c481b3660a373485b93
parent0e7bfce8d0dc29695d0eb141f16e7976abcc5486 (diff)
downloadedk2-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
-rw-r--r--EdkModulePkg/Bus/Pci/Ehci/Dxe/EhciSched.c6
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: