Add error handling in CreateU54E51CoreProcessorSpecificDataHob () when opensbi firmware context can't be located.
Signed-off-by: Abner Chang <abner.ch...@hpe.com> Cc: Daniel Schaefer <daniel.schae...@hpe.com> Cc: Leif Lindholm <l...@nuviainc.com> --- .../SiFive/U54/Library/PeiCoreInfoHobLib/CoreInfoHob.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Silicon/SiFive/U54/Library/PeiCoreInfoHobLib/CoreInfoHob.c b/Silicon/SiFive/U54/Library/PeiCoreInfoHobLib/CoreInfoHob.c index edeabf028f..ea947a9d28 100644 --- a/Silicon/SiFive/U54/Library/PeiCoreInfoHobLib/CoreInfoHob.c +++ b/Silicon/SiFive/U54/Library/PeiCoreInfoHobLib/CoreInfoHob.c @@ -38,7 +38,7 @@ @return EFI_SUCCESS The PEIM initialized successfully. EFI_UNSUPPORTED HART is ignored by platform. - + EFI_NOT_FOUND Processor specific data hob is not available. **/ EFI_STATUS EFIAPI @@ -64,9 +64,14 @@ CreateU54E51CoreProcessorSpecificDataHob ( return EFI_INVALID_PARAMETER; } + FirmwareContext = NULL; Status = SbiGetFirmwareContext (&FirmwareContext); ASSERT_EFI_ERROR (Status); - DEBUG ((DEBUG_INFO, " Firmware Context is at 0x%x.\n", FirmwareContext)); + if (EFI_ERROR (Status) || FirmwareContext == NULL) { + DEBUG ((DEBUG_ERROR, "Failed to get the pointer of EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT of hart %d\n", HartId)); + return Status; + } + DEBUG((DEBUG_INFO, " Firmware Context is at 0x%x.\n", FirmwareContext)); FirmwareContextHartSpecific = FirmwareContext->HartSpecific[HartId]; DEBUG ((DEBUG_INFO, " Firmware Context Hart specific is at 0x%x.\n", FirmwareContextHartSpecific)); if (FirmwareContextHartSpecific == NULL) { -- 2.25.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65127): https://edk2.groups.io/g/devel/message/65127 Mute This Topic: https://groups.io/mt/76703529/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-