]> git.proxmox.com Git - mirror_edk2.git/commit
UefiCpuPkg RegisterCpuFeaturesLib: Use AllocatePages() for InitOrder
authorStar Zeng <star.zeng@intel.com>
Tue, 8 Dec 2020 10:38:44 +0000 (18:38 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Mon, 14 Dec 2020 05:49:50 +0000 (05:49 +0000)
commit004f9776f47c4b8504bc9ce8dd584ad2d2017e23
tree3e46fb495d9f4875650e9f7b07dd50e01b491ec0
parent1f304300ffe64d47efc2f4d845da3081fd2b86a4
UefiCpuPkg RegisterCpuFeaturesLib: Use AllocatePages() for InitOrder

The required buffer size for InitOrder will be 96K when NumberOfCpus=1024.
sizeof (CPU_FEATURES_INIT_ORDER) = 96
NumberOfCpus = 1024 = 1K
sizeof (CPU_FEATURES_INIT_ORDER) * NumberOfCpus = 96K

AllocateZeroPool() will call to PeiServicesAllocatePool() which will use
EFI_HOB_MEMORY_POOL to management memory pool.
EFI_HOB_MEMORY_POOL.Header.HobLength is UINT16 type, so there is no way
for AllocateZeroPool() to allocate > 64K memory.

So AllocateZeroPool() could not be used anymore for the case above or
even bigger required buffer size.

This patch updates the code to use AllocatePages() instead of
AllocateZeroPool() to allocate buffer for InitOrder.

Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
UefiCpuPkg/Library/RegisterCpuFeaturesLib/CpuFeaturesInitialize.c