diff --git a/ArmPkg/Library/CpuArchLib/AArch64/Mmu.c b/ArmPkg/Library/CpuArchLib/AArch64/Mmu.c index c1f80aa612..1805156e38 100644 --- a/ArmPkg/Library/CpuArchLib/AArch64/Mmu.c +++ b/ArmPkg/Library/CpuArchLib/AArch64/Mmu.c @@ -91,7 +91,7 @@ PageAttributeToGcdAttribute ( } // Process eXecute Never attribute - if ((PageAttributes & (TT_PXN_MASK | TT_UXN_MASK)) != 0) { + if ((PageAttributes & (TT_PXN_MASK | TT_UXN_MASK)) == (TT_PXN_MASK | TT_UXN_MASK)) { GcdAttributes |= EFI_MEMORY_XP; } diff --git a/ArmPkg/Library/CpuArchLib/Arm/Mmu.c b/ArmPkg/Library/CpuArchLib/Arm/Mmu.c index 62c2a4ef3a..51199b9594 100644 --- a/ArmPkg/Library/CpuArchLib/Arm/Mmu.c +++ b/ArmPkg/Library/CpuArchLib/Arm/Mmu.c @@ -78,10 +78,8 @@ SectionToGcdAttributes ( } // now process eXectue Never attribute - if ((((SectionAttributes & TT_DESCRIPTOR_SECTION_XN_MASK) != 0) - && ((*GcdAttributes & EFI_MEMORY_USER) != 0)) - || (((SectionAttributes & TT_DESCRIPTOR_SECTION_PXN_MASK) != 0) - && ((*GcdAttributes & EFI_MEMORY_USER) == 0))) { + if ((SectionAttributes & (TT_DESCRIPTOR_SECTION_XN_MASK | TT_DESCRIPTOR_SECTION_PXN_MASK)) + == (TT_DESCRIPTOR_SECTION_XN_MASK | TT_DESCRIPTOR_SECTION_PXN_MASK)) { *GcdAttributes |= EFI_MEMORY_XP; }