Revision: 18437
http://sourceforge.net/p/edk2/code/18437
Author: lersek
Date: 2015-09-10 11:25:02 +0000 (Thu, 10 Sep 2015)
Log Message:
-----------
MdeModulePkg: ScsiDiskDxe: recognize EFI_BAD_BUFFER_SIZE
Acting specifically upon this error condition from UefiScsiLib (and
ultimately from EFI_EXT_SCSI_PASS_THRU_PROTOCOL.PassThru()) in the
- ScsiDiskRead10(),
- ScsiDiskWrite10(),
- ScsiDiskRead16(),
- ScsiDiskWrite16()
functions allows us to retry these operations from ScsiDiskReadSectors()
and ScsiDiskWriteSectors(), with adjusted transfer sizes, without
investigating further error details like Host Adapter Status, Target
Status, and Sense Data.
Cc: Feng Tian <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <[email protected]>
Reviewed-by: Feng Tian <[email protected]>
Modified Paths:
--------------
trunk/edk2/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c
Modified: trunk/edk2/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c
===================================================================
--- trunk/edk2/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c 2015-09-10
09:51:00 UTC (rev 18436)
+++ trunk/edk2/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c 2015-09-10
11:25:02 UTC (rev 18437)
@@ -2107,7 +2107,7 @@
SectorCount
);
- if (ReturnStatus == EFI_NOT_READY) {
+ if (ReturnStatus == EFI_NOT_READY || ReturnStatus == EFI_BAD_BUFFER_SIZE) {
*NeedRetry = TRUE;
return EFI_DEVICE_ERROR;
} else if ((ReturnStatus == EFI_INVALID_PARAMETER) || (ReturnStatus ==
EFI_UNSUPPORTED)) {
@@ -2231,7 +2231,7 @@
StartLba,
SectorCount
);
- if (ReturnStatus == EFI_NOT_READY) {
+ if (ReturnStatus == EFI_NOT_READY || ReturnStatus == EFI_BAD_BUFFER_SIZE) {
*NeedRetry = TRUE;
return EFI_DEVICE_ERROR;
} else if ((ReturnStatus == EFI_INVALID_PARAMETER) || (ReturnStatus ==
EFI_UNSUPPORTED)) {
@@ -2354,7 +2354,7 @@
StartLba,
SectorCount
);
- if (ReturnStatus == EFI_NOT_READY) {
+ if (ReturnStatus == EFI_NOT_READY || ReturnStatus == EFI_BAD_BUFFER_SIZE) {
*NeedRetry = TRUE;
return EFI_DEVICE_ERROR;
} else if ((ReturnStatus == EFI_INVALID_PARAMETER) || (ReturnStatus ==
EFI_UNSUPPORTED)) {
@@ -2478,7 +2478,7 @@
StartLba,
SectorCount
);
- if (ReturnStatus == EFI_NOT_READY) {
+ if (ReturnStatus == EFI_NOT_READY || ReturnStatus == EFI_BAD_BUFFER_SIZE) {
*NeedRetry = TRUE;
return EFI_DEVICE_ERROR;
} else if ((ReturnStatus == EFI_INVALID_PARAMETER) || (ReturnStatus ==
EFI_UNSUPPORTED)) {
------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits