diff options
author | erictian <erictian@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-10-19 02:55:16 +0000 |
---|---|---|
committer | erictian <erictian@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-10-19 02:55:16 +0000 |
commit | c6e797aedafc09b241339587116f3fe51c41131a (patch) | |
tree | 2b0bc75a33a83b593f6ffc9afeec0d21889dea6c /MdeModulePkg/Bus/Scsi | |
parent | fbe12b79aef4c2706e90078cc75b94dcf7926ba8 (diff) | |
download | edk2-c6e797aedafc09b241339587116f3fe51c41131a.zip edk2-c6e797aedafc09b241339587116f3fe51c41131a.tar.gz edk2-c6e797aedafc09b241339587116f3fe51c41131a.tar.bz2 |
return EFI_DEVICE_ERROR if the Status value is not EFI_SUCCESS.
it's because BlockIo.Reset() only has two possible values: EFI_SUCCESS and EFI_DEVICE_ERROR according to UEFI2.3 spec
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10956 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Bus/Scsi')
-rw-r--r-- | MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c index c1d96b9..3f6963e 100644 --- a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c +++ b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c @@ -398,12 +398,22 @@ ScsiDiskReset ( Status = ScsiDiskDevice->ScsiIo->ResetDevice (ScsiDiskDevice->ScsiIo);
+ if (EFI_ERROR (Status)) {
+ Status = EFI_DEVICE_ERROR;
+ goto Done;
+ }
+
if (!ExtendedVerification) {
goto Done;
}
Status = ScsiDiskDevice->ScsiIo->ResetBus (ScsiDiskDevice->ScsiIo);
+ if (EFI_ERROR (Status)) {
+ Status = EFI_DEVICE_ERROR;
+ goto Done;
+ }
+
Done:
gBS->RestoreTPL (OldTpl);
return Status;
|