Hi, Kulkarni

 

It needs to return a EFI_DEVICE_ERROR.

 

Please refer to SATA2.6 section 11.7 PIO data-in command protocol, the device will send D2H to show there is an error happened.

 

Thanks

Feng

 

From: Ganapatrao Kulkarni [mailto:gpkulkarni@gmail.com]
Sent: Tuesday, June 03, 2014 2:00 PM
To: edk2-devel@lists.sourceforge.net; linaro-uefi@lists.linaro.org
Subject: [edk2] Fix to a bug in AhciMode.c

 

Hi All,

below patch fixes the bug which assigns the Status to error code on success.

thanks

Ganapat



diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c
index 950b5da..ab18dcb 100644
--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c
+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c
@@ -782,7 +782,6 @@ AhciPioTransfer (
       Offset = FisBaseAddr + EFI_AHCI_D2H_FIS_OFFSET;
       Status = AhciCheckMemSet (Offset, EFI_AHCI_FIS_TYPE_MASK, EFI_AHCI_FIS_REGISTER_D2H, 0);
       if (!EFI_ERROR (Status)) {
-        Status = EFI_DEVICE_ERROR;
         break;
       }