ArmPkg/CpuDxe: ARM: ignore page table updates that only change permissions

Currently, we have not implemented support on 32-bit ARM for managing
permission bits in the page tables. Since the new DXE page protection
for PE/COFF images may invoke EFI_CPU_ARCH_PROTOCOL.SetMemoryAttributes()
with only permission attributes set, let's simply ignore those for now.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
Ard Biesheuvel 2017-02-15 17:11:55 +00:00
parent ce82984fe7
commit 0a9d732c91
1 changed files with 7 additions and 0 deletions

View File

@ -680,6 +680,13 @@ SetMemoryAttributes (
{
EFI_STATUS Status;
//
// Ignore invocations that only modify permission bits
//
if ((Attributes & EFI_MEMORY_CACHETYPE_MASK) == 0) {
return EFI_SUCCESS;
}
if(((BaseAddress & 0xFFFFF) == 0) && ((Length & 0xFFFFF) == 0)) {
// Is the base and length a multiple of 1 MB?
DEBUG ((EFI_D_PAGE, "SetMemoryAttributes(): MMU section 0x%x length 0x%x to %lx\n", (UINTN)BaseAddress, (UINTN)Length, Attributes));