diff options
author | Kun Qin <kuqin12@gmail.com> | 2021-04-15 04:25:47 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2021-04-20 00:32:24 +0000 |
commit | c3dcbce26f9520597fc3027a0702f368217d6ca6 (patch) | |
tree | 9c9381b2c413537576ac67e53539ec59bec5aadd /BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py | |
parent | 64138c95db5a7a3e4768d8a01ba71dc3475e6524 (diff) | |
download | edk2-c3dcbce26f9520597fc3027a0702f368217d6ca6.tar.gz edk2-c3dcbce26f9520597fc3027a0702f368217d6ca6.tar.bz2 edk2-c3dcbce26f9520597fc3027a0702f368217d6ca6.zip |
UefiCpuPkg: PiSmmCpuDxeSmm: Not to Change Bitwidth During Static Paging
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: 4eee0cc7cc0db74489b99c19eba056b53eda6358
Signed-off-by: Kun Qin <kuqin12@gmail.com>
Diffstat (limited to 'BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py')
0 files changed, 0 insertions, 0 deletions