From d11968fcc56cbbffef7d906048b00faea9415447 Mon Sep 17 00:00:00 2001 From: Ranbir Singh Date: Mon, 17 Jul 2023 12:24:44 +0800 Subject: MdeModulePkg/Bus/Ata/AtaAtapiPassThru: Fix UNUSED_VALUE Coverity issue The return value stored in Status after call to SetDriveParameters is not made of any use thereafter and hence it remains as UNUSED. Based on Hao's findings (https://edk2.groups.io/g/devel/message/106844), the successful execution of SetDriveParameters() is not mandatory for initializing IDE mode of a hard disk device. Hence remove the 'Status' assignment of the return value from SetDriveParameters() and instead add error checks & DEBUG_WARN level messages within SetDriveParameters() function after sending INIT_DRIVE_PARAM & SET_MULTIPLE_MODE ATA commands. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4204 Cc: Hao A Wu Cc: Ray Ni Signed-off-by: Ranbir Singh Signed-off-by: Ranbir Singh Reviewed-by: Hao A Wu --- MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c index 75403886e4..19d7b4930c 100644 --- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c +++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c @@ -1992,6 +1992,10 @@ SetDriveParameters ( NULL ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_WARN, "Init Drive Parameters Fail, Status = %r\n", Status)); + } + // // Send Set Multiple parameters // @@ -2008,6 +2012,10 @@ SetDriveParameters ( NULL ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_WARN, "Set Multiple Mode Parameters Fail, Status = %r\n", Status)); + } + return Status; } @@ -2549,13 +2557,13 @@ DetectAndConfigIdeDevice ( // if (DeviceType == EfiIdeHarddisk) { // - // Init driver parameters + // Init drive parameters // DriveParameters.Sector = (UINT8)((ATA5_IDENTIFY_DATA *)(&Buffer.AtaData))->sectors_per_track; DriveParameters.Heads = (UINT8)(((ATA5_IDENTIFY_DATA *)(&Buffer.AtaData))->heads - 1); DriveParameters.MultipleSector = (UINT8)((ATA5_IDENTIFY_DATA *)(&Buffer.AtaData))->multi_sector_cmd_max_sct_cnt; - Status = SetDriveParameters (Instance, IdeChannel, IdeDevice, &DriveParameters, NULL); + SetDriveParameters (Instance, IdeChannel, IdeDevice, &DriveParameters, NULL); } // -- cgit