From 3545488dd64c4bf9e7549d020112342985931ab1 Mon Sep 17 00:00:00 2001 From: Star Zeng Date: Fri, 20 Apr 2018 15:13:32 +0800 Subject: [PATCH] MdeModulePkg EsrtFmpDxe: Use EfiBootServicesData for ESRT table REF: https://bugzilla.tianocore.org/show_bug.cgi?id=933 We see UEFI spec is saying to use EfiBootServicesData for ESRT table. UEFI 2.7 chapter 23.3: The ESRT shall be stored in memory of type EfiBootServicesData. And we see EsrtDxe is using AllocatePool for ESRT table, but EsrtFmpDxe is using AllocateRuntimeZeroPool for ESRT table. This patch updates code to use EfiBootServicesData for ESRT table in EsrtFmpDxe. Change-Id: I72a73e0cc0a37e429cc262d68eb284fb268cb5ef Cc: Jiewen Yao Cc: Michael D Kinney Cc: Sean Brogan Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng Reviewed-by: Jiewen Yao Reviewed-by: Michael D Kinney --- MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c b/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c index 3da4a62fb1..cc9dd63b53 100644 --- a/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c +++ b/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c @@ -190,7 +190,7 @@ CreateEsrtEntry ( } NewSize = ((mTable->FwResourceCountMax + GROWTH_STEP) * sizeof (EFI_SYSTEM_RESOURCE_ENTRY)) + sizeof (EFI_SYSTEM_RESOURCE_TABLE); - NewTable = AllocateRuntimeZeroPool (NewSize); + NewTable = AllocateZeroPool (NewSize); if (NewTable == NULL) { DEBUG ((DEBUG_ERROR, "EsrtFmpDxe: Failed to allocate memory larger table for ESRT. \n")); return EFI_OUT_OF_RESOURCES; @@ -439,7 +439,7 @@ EsrtFmpEntryPoint ( // // Allocate Memory for table // - mTable = AllocateRuntimeZeroPool ( + mTable = AllocateZeroPool ( (GROWTH_STEP * sizeof (EFI_SYSTEM_RESOURCE_ENTRY)) + sizeof (EFI_SYSTEM_RESOURCE_TABLE) ); ASSERT (mTable != NULL);