diff --git a/DcpmPkg/driver/Protocol/Driver/NvmDimmConfig.c b/DcpmPkg/driver/Protocol/Driver/NvmDimmConfig.c index 804601a7..e85ccdf9 100644 --- a/DcpmPkg/driver/Protocol/Driver/NvmDimmConfig.c +++ b/DcpmPkg/driver/Protocol/Driver/NvmDimmConfig.c @@ -10134,7 +10134,13 @@ LoadArsList( //First check how many records exist by passing NULL sArsBadRecordsCount = 0; ReturnCode = pDcpmmProtocol->DcpmmArsStatus(&sArsBadRecordsCount, NULL); - if (ReturnCode != EFI_NOT_READY && EFI_ERROR(ReturnCode)) { + if (ReturnCode == EFI_NOT_READY) + { + NVDIMM_WARN("BIOS reports not ready for full ARS list. The returned list may be partial."); + ReturnCode = EFI_SUCCESS; + } + + if (EFI_ERROR(ReturnCode)) { NVDIMM_WARN("Could not obtain the ARS bad address list count"); sArsBadRecordsCount = 0; goto Finish; @@ -10151,7 +10157,13 @@ LoadArsList( } ReturnCode = pDcpmmProtocol->DcpmmArsStatus(&sArsBadRecordsCount, sArsBadRecords); - if (ReturnCode != EFI_NOT_READY && EFI_ERROR(ReturnCode)) { + if (ReturnCode == EFI_NOT_READY) + { + NVDIMM_WARN("BIOS reports not ready for full ARS list. The returned list may be partial."); + ReturnCode = EFI_SUCCESS; + } + + if (EFI_ERROR(ReturnCode)) { NVDIMM_WARN("Could not obtain the ARS bad address list"); FreePool(sArsBadRecords); sArsBadRecordsCount = 0;