]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Bus/Pci/Ehci/Dxe/EhciSched.c
AsyncRequestPtr maybe NULL after its callback function is invoke. So Caching it tempo...
[mirror_edk2.git] / EdkModulePkg / Bus / Pci / Ehci / Dxe / EhciSched.c
index 1226d569cf73d7e1d8ed966fba8559225df287a7..1a947058be0a378edcc86987aeac920c7b549bed 100644 (file)
@@ -2997,6 +2997,7 @@ Returns:
   UINT32              TransferResult;\r
   UINT8               *ReceiveBuffer;\r
   UINT8               *ProcessBuffer;\r
+  EHCI_ASYNC_REQUEST  *NextPtr;\r
 \r
   Status          = EFI_SUCCESS;\r
   QtdHwPtr        = NULL;\r
@@ -3042,6 +3043,8 @@ Returns:
 \r
     UpdateAsyncRequestTransfer (AsyncRequestPtr, TransferResult, ErrQtdPos);\r
 \r
+    NextPtr = AsyncRequestPtr->Next;\r
+\r
     if (EFI_USB_NOERROR == TransferResult) {\r
 \r
       if (AsyncRequestPtr->CallBackFunc != NULL) {\r
@@ -3069,8 +3072,7 @@ Returns:
       gBS->FreePool (ProcessBuffer);\r
     }\r
 \r
-    AsyncRequestPtr = AsyncRequestPtr->Next;\r
-\r
+    AsyncRequestPtr = NextPtr;\r
   }\r
 \r
 exit:\r