mirror of https://github.com/acidanthera/audk.git
c3dcbce26f
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3300
Current implementation of SetStaticPageTable routine in PiSmmCpuDxeSmm
driver will check a global variable mPhysicalAddressBits, and eventually
cap any value larger than 39 at 39.
This global variable is used in ConvertMemoryPageAttributes, which backs
SmmSetMemoryAttributes and SmmClearMemoryAttributes. Thus for a processor
that supports more than 39 bits width, trying to mark page table regions
higher than 39-bit will always return EFI_UNSUPPROTED.
This change updated the interface of SetStaticPageTable function to take
PhysicalAddressBits as an input parameter, in order to avoid changing/
accessing the global variable.
Cc: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Fixes:
|
||
---|---|---|
.. | ||
Cet.nasm | ||
MpFuncs.nasm | ||
PageTbl.c | ||
Semaphore.c | ||
SmiEntry.nasm | ||
SmiException.nasm | ||
SmmFuncsArch.c | ||
SmmInit.nasm | ||
SmmProfileArch.c | ||
SmmProfileArch.h |