goto ErrorExit;\r
}\r
\r
- return ScsiIo->ExecuteScsiCommand (ScsiIo, CommandPacket, SelfEvent);\r
+ Status = ScsiIo->ExecuteScsiCommand (ScsiIo, CommandPacket, SelfEvent);\r
+ if (EFI_ERROR(Status)) {\r
+ //\r
+ // Since ScsiLibNotify() will not be signaled if ExecuteScsiCommand()\r
+ // returns with error, close the event here.\r
+ //\r
+ gBS->CloseEvent (SelfEvent);\r
+ goto ErrorExit;\r
+ } else {\r
+ return EFI_SUCCESS;\r
+ }\r
\r
ErrorExit:\r
if (Context != NULL) {\r
goto ErrorExit;\r
}\r
\r
- return ScsiIo->ExecuteScsiCommand (ScsiIo, CommandPacket, Event);\r
+ Status = ScsiIo->ExecuteScsiCommand (ScsiIo, CommandPacket, SelfEvent);\r
+ if (EFI_ERROR(Status)) {\r
+ //\r
+ // Since ScsiLibNotify() will not be signaled if ExecuteScsiCommand()\r
+ // returns with error, close the event here.\r
+ //\r
+ gBS->CloseEvent (SelfEvent);\r
+ goto ErrorExit;\r
+ } else {\r
+ return EFI_SUCCESS;\r
+ }\r
\r
ErrorExit:\r
if (Context != NULL) {\r
goto ErrorExit;\r
}\r
\r
- return ScsiIo->ExecuteScsiCommand (ScsiIo, CommandPacket, Event);\r
+ Status = ScsiIo->ExecuteScsiCommand (ScsiIo, CommandPacket, SelfEvent);\r
+ if (EFI_ERROR(Status)) {\r
+ //\r
+ // Since ScsiLibNotify() will not be signaled if ExecuteScsiCommand()\r
+ // returns with error, close the event here.\r
+ //\r
+ gBS->CloseEvent (SelfEvent);\r
+ goto ErrorExit;\r
+ } else {\r
+ return EFI_SUCCESS;\r
+ }\r
\r
ErrorExit:\r
if (Context != NULL) {\r
goto ErrorExit;\r
}\r
\r
- return ScsiIo->ExecuteScsiCommand (ScsiIo, CommandPacket, Event);\r
+ Status = ScsiIo->ExecuteScsiCommand (ScsiIo, CommandPacket, SelfEvent);\r
+ if (EFI_ERROR(Status)) {\r
+ //\r
+ // Since ScsiLibNotify() will not be signaled if ExecuteScsiCommand()\r
+ // returns with error, close the event here.\r
+ //\r
+ gBS->CloseEvent (SelfEvent);\r
+ goto ErrorExit;\r
+ } else {\r
+ return EFI_SUCCESS;\r
+ }\r
\r
ErrorExit:\r
if (Context != NULL) {\r