From: Tan, Dun Date: Tue, 13 Jul 2021 07:19:13 +0000 (+0800) Subject: UefiPayloadPkg: Assign the length of UniversalPayload ExtraData X-Git-Tag: edk2-stable202108~89 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=9bf4aee7340c331a47d3a60388d478461979a45d;p=mirror_edk2.git UefiPayloadPkg: Assign the length of UniversalPayload ExtraData V1: Assign the length and revision of UniversalPayload ExtraData V2: Force int to UINT16 V3: Create a local variable to hold the size of ExtraData Cc: Guo Dong Cc: Ray Ni Cc: Maurice Ma Cc: Benjamin You Signed-off-by: DunTan Reviewed-by: Ray Ni --- diff --git a/UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c b/UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c index c619470dbb..141ce86b46 100644 --- a/UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c +++ b/UefiPayloadPkg/PayloadLoaderPeim/PayloadLoaderPeim.c @@ -56,6 +56,7 @@ PeiLoadFileLoadPayload ( UINTN Size; UINT32 ExtraDataCount; UINTN Instance; + UINTN Length; // // ELF is added to file as RAW section for EDKII bootloader. @@ -105,11 +106,14 @@ PeiLoadFileLoadPayload ( // // Report the additional PLD sections through HOB. // + Length = sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA) + ExtraDataCount * sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA_ENTRY); ExtraData = BuildGuidHob ( &gUniversalPayloadExtraDataGuid, - sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA) + ExtraDataCount * sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA_ENTRY) + Length ); ExtraData->Count = ExtraDataCount; + ExtraData->Header.Revision = UNIVERSAL_PAYLOAD_EXTRA_DATA_REVISION; + ExtraData->Header.Length = (UINT16) Length; if (ExtraDataCount != 0) { for (ExtraDataIndex = 0, Index = 0; Index < Context.ShNum; Index++) { Status = GetElfSectionName (&Context, Index, &SectionName);