arm64: mm: Mark executable text as guarded pages
authorMark Brown <broonie@kernel.org>
Wed, 6 May 2020 19:51:33 +0000 (20:51 +0100)
committerWill Deacon <will@kernel.org>
Thu, 7 May 2020 16:53:20 +0000 (17:53 +0100)
When the kernel is built for BTI and running on a system which supports
make all executable text guarded pages to ensure that loadable module
and JITed BPF code is protected by BTI.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20200506195138.22086-7-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/mm/pageattr.c

index 250c490..bde0809 100644 (file)
@@ -126,13 +126,13 @@ int set_memory_nx(unsigned long addr, int numpages)
 {
        return change_memory_common(addr, numpages,
                                        __pgprot(PTE_PXN),
-                                       __pgprot(0));
+                                       __pgprot(PTE_MAYBE_GP));
 }
 
 int set_memory_x(unsigned long addr, int numpages)
 {
        return change_memory_common(addr, numpages,
-                                       __pgprot(0),
+                                       __pgprot(PTE_MAYBE_GP),
                                        __pgprot(PTE_PXN));
 }