]> git.proxmox.com Git - mirror_edk2.git/commit
UefiCpuPkg/CpuDxe: fix SetMemoryAttributes issue in 32-bit mode
authorJian J Wang <jian.j.wang@intel.com>
Tue, 16 Jan 2018 02:45:56 +0000 (10:45 +0800)
committerRuiyu Ni <ruiyu.ni@intel.com>
Thu, 18 Jan 2018 09:03:21 +0000 (17:03 +0800)
commit4f10654e04601fe67a750c9b5a4242efd4141569
treeb92c6740fdec880bd69006b98e404c58f16262b9
parent1dbd423fbb454152b787efbff1b5a98e104b31c7
UefiCpuPkg/CpuDxe: fix SetMemoryAttributes issue in 32-bit mode

In 32-bit mode, the BIOS will not create page table for memory beyond
4GB and therefore it cannot handle the attributes change request for
those memory. But current CpuDxe doesn't check this situation and still
try to complete the request, which will cause attributes of incorrect
memory address to be changed due to type cast from 64-bit to 32-bit.

This patch fixes this issue by checking the end address of input
memory block and returning EFI_UNSUPPORTED if it's out of range.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
UefiCpuPkg/CpuDxe/CpuPageTable.c