]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c
MdeModulePkg ScsiDiskDxe: Close event when SCSI command fails
[mirror_edk2.git] / MdeModulePkg / Bus / Scsi / ScsiDiskDxe / ScsiDisk.c
index 3e19fad064117584be10701ba7a1d8c100ed3e7a..ba7f5a5f77fc9b3e55fc410a5fce136e6cfb5b9c 100644 (file)
@@ -3700,6 +3700,8 @@ ScsiDiskAsyncRead10 (
   SCSI_ASYNC_RW_REQUEST        *Request;\r
   EFI_EVENT                    AsyncIoEvent;\r
 \r
+  AsyncIoEvent = NULL;\r
+\r
   Request = AllocateZeroPool (sizeof (SCSI_ASYNC_RW_REQUEST));\r
   if (Request == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
@@ -3755,6 +3757,10 @@ ScsiDiskAsyncRead10 (
   return EFI_SUCCESS;\r
 \r
 ErrorExit:\r
+  if (AsyncIoEvent != NULL) {\r
+    gBS->CloseEvent (AsyncIoEvent);\r
+  }\r
+\r
   if (Request != NULL) {\r
     if (Request->SenseData != NULL) {\r
       FreePool (Request->SenseData);\r
@@ -3803,6 +3809,8 @@ ScsiDiskAsyncWrite10 (
   SCSI_ASYNC_RW_REQUEST        *Request;\r
   EFI_EVENT                    AsyncIoEvent;\r
 \r
+  AsyncIoEvent = NULL;\r
+\r
   Request = AllocateZeroPool (sizeof (SCSI_ASYNC_RW_REQUEST));\r
   if (Request == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
@@ -3858,6 +3866,10 @@ ScsiDiskAsyncWrite10 (
   return EFI_SUCCESS;\r
 \r
 ErrorExit:\r
+  if (AsyncIoEvent != NULL) {\r
+    gBS->CloseEvent (AsyncIoEvent);\r
+  }\r
+\r
   if (Request != NULL) {\r
     if (Request->SenseData != NULL) {\r
       FreePool (Request->SenseData);\r
@@ -3906,6 +3918,8 @@ ScsiDiskAsyncRead16 (
   SCSI_ASYNC_RW_REQUEST        *Request;\r
   EFI_EVENT                    AsyncIoEvent;\r
 \r
+  AsyncIoEvent = NULL;\r
+\r
   Request = AllocateZeroPool (sizeof (SCSI_ASYNC_RW_REQUEST));\r
   if (Request == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
@@ -3961,6 +3975,10 @@ ScsiDiskAsyncRead16 (
   return EFI_SUCCESS;\r
 \r
 ErrorExit:\r
+  if (AsyncIoEvent != NULL) {\r
+    gBS->CloseEvent (AsyncIoEvent);\r
+  }\r
+\r
   if (Request != NULL) {\r
     if (Request->SenseData != NULL) {\r
       FreePool (Request->SenseData);\r
@@ -4009,6 +4027,8 @@ ScsiDiskAsyncWrite16 (
   SCSI_ASYNC_RW_REQUEST        *Request;\r
   EFI_EVENT                    AsyncIoEvent;\r
 \r
+  AsyncIoEvent = NULL;\r
+\r
   Request = AllocateZeroPool (sizeof (SCSI_ASYNC_RW_REQUEST));\r
   if (Request == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
@@ -4064,6 +4084,10 @@ ScsiDiskAsyncWrite16 (
   return EFI_SUCCESS;\r
 \r
 ErrorExit:\r
+  if (AsyncIoEvent != NULL) {\r
+    gBS->CloseEvent (AsyncIoEvent);\r
+  }\r
+\r
   if (Request != NULL) {\r
     if (Request->SenseData != NULL) {\r
       FreePool (Request->SenseData);\r