From e4c26e4957d03ba612ce4cb232867a581d4b932e Mon Sep 17 00:00:00 2001 From: Mikhail Krichanov Date: Fri, 27 Sep 2024 12:02:45 +0300 Subject: [PATCH] ArmPkg/Library/CpuArchLib: Refactored ARM to UEFI attribute conversion. --- ArmPkg/Library/CpuArchLib/AArch64/Mmu.c | 2 +- ArmPkg/Library/CpuArchLib/Arm/Mmu.c | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) 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; }