summaryrefslogtreecommitdiff
path: root/arch/arm64/kernel/efi-header.S
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2023-03-10 13:30:05 +0100
committerArd Biesheuvel <ardb@kernel.org>2023-03-10 14:11:40 +0100
commit3c66bb1918c262dd52fb4221a8d372619c5da70a (patch)
treea338570fb7dae773c444f3d22870b8f177e31c95 /arch/arm64/kernel/efi-header.S
parent3c60f67b4bd1bc01fa9194e9dc925ac6cb56156c (diff)
arm64: efi: Set NX compat flag in PE/COFF header
The PE/COFF header has a NX compat flag which informs the firmware that the application does not rely on memory regions being mapped with both executable and writable permissions at the same time. This is typically used by the firmware to decide whether it can set the NX attribute on all allocations it returns, but going forward, it may be used to enforce a policy that only permits applications with the NX flag set to be loaded to begin wiht in some configurations, e.g., when Secure Boot is in effect. Even though the arm64 version of the EFI stub may relocate the kernel before executing it, it always did so after disabling the MMU, and so we were always in line with what the NX compat flag conveys, we just never bothered to set it. So let's set the flag now. Cc: <stable@vger.kernel.org> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'arch/arm64/kernel/efi-header.S')
-rw-r--r--arch/arm64/kernel/efi-header.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/kernel/efi-header.S b/arch/arm64/kernel/efi-header.S
index 28d8a5dca5f1..d731b4655df8 100644
--- a/arch/arm64/kernel/efi-header.S
+++ b/arch/arm64/kernel/efi-header.S
@@ -66,7 +66,7 @@
.long .Lefi_header_end - .L_head // SizeOfHeaders
.long 0 // CheckSum
.short IMAGE_SUBSYSTEM_EFI_APPLICATION // Subsystem
- .short 0 // DllCharacteristics
+ .short IMAGE_DLL_CHARACTERISTICS_NX_COMPAT // DllCharacteristics
.quad 0 // SizeOfStackReserve
.quad 0 // SizeOfStackCommit
.quad 0 // SizeOfHeapReserve