Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: move PAC masks to <asm/pointer_auth.h>

Now that we use XPACLRI to strip PACs within the kernel, the
ptrauth_user_pac_mask() and ptrauth_kernel_pac_mask() definitions no
longer need to live in <asm/compiler.h>.

Move them to <asm/pointer_auth.h>, and ensure that this header is
included where they are used.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Amit Daniel Kachhap <amit.kachhap@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Cc: Kristina Martsenko <kristina.martsenko@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20230412160134.306148-4-mark.rutland@arm.com
Signed-off-by: Will Deacon <will@kernel.org>

authored by

Mark Rutland and committed by
Will Deacon
de1702f6 ca708599

+8 -7
-7
arch/arm64/include/asm/compiler.h
··· 8 8 #define ARM64_ASM_PREAMBLE 9 9 #endif 10 10 11 - /* 12 - * The EL0/EL1 pointer bits used by a pointer authentication code. 13 - * This is dependent on TBI0/TBI1 being enabled, or bits 63:56 would also apply. 14 - */ 15 - #define ptrauth_user_pac_mask() GENMASK_ULL(54, vabits_actual) 16 - #define ptrauth_kernel_pac_mask() GENMASK_ULL(63, vabits_actual) 17 - 18 11 #define xpaclri(ptr) \ 19 12 ({ \ 20 13 register unsigned long __xpaclri_ptr asm("x30") = (ptr); \
+7
arch/arm64/include/asm/pointer_auth.h
··· 10 10 #include <asm/memory.h> 11 11 #include <asm/sysreg.h> 12 12 13 + /* 14 + * The EL0/EL1 pointer bits used by a pointer authentication code. 15 + * This is dependent on TBI0/TBI1 being enabled, or bits 63:56 would also apply. 16 + */ 17 + #define ptrauth_user_pac_mask() GENMASK_ULL(54, vabits_actual) 18 + #define ptrauth_kernel_pac_mask() GENMASK_ULL(63, vabits_actual) 19 + 13 20 #define PR_PAC_ENABLED_KEYS_MASK \ 14 21 (PR_PAC_APIAKEY | PR_PAC_APIBKEY | PR_PAC_APDAKEY | PR_PAC_APDBKEY) 15 22
+1
arch/arm64/kernel/crash_core.c
··· 8 8 #include <asm/cpufeature.h> 9 9 #include <asm/memory.h> 10 10 #include <asm/pgtable-hwdef.h> 11 + #include <asm/pointer_auth.h> 11 12 12 13 static inline u64 get_tcr_el1_t1sz(void); 13 14