Commit d0055da5 authored by Mark Rutland's avatar Mark Rutland Committed by Will Deacon
Browse files

arm64: remove ptrauth_keys_install_kernel sync arg



The 'sync' argument to ptrauth_keys_install_kernel macro is somewhat
opaque at callsites, so instead lets have regular and _nosync variants
of the macro to make this a little more obvious.

Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
Cc: Amit Daniel Kachhap <amit.kachhap@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20200423101606.37601-2-mark.rutland@arm.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 6a8b55ed
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -39,16 +39,24 @@ alternative_if ARM64_HAS_GENERIC_AUTH
alternative_else_nop_endif
	.endm

	.macro ptrauth_keys_install_kernel tsk, sync, tmp1, tmp2, tmp3
alternative_if ARM64_HAS_ADDRESS_AUTH
	.macro __ptrauth_keys_install_kernel_nosync tsk, tmp1, tmp2, tmp3
	mov	\tmp1, #THREAD_KEYS_KERNEL
	add	\tmp1, \tsk, \tmp1
	ldp	\tmp2, \tmp3, [\tmp1, #PTRAUTH_KERNEL_KEY_APIA]
	msr_s	SYS_APIAKEYLO_EL1, \tmp2
	msr_s	SYS_APIAKEYHI_EL1, \tmp3
	.if     \sync == 1
	.endm

	.macro ptrauth_keys_install_kernel_nosync tsk, tmp1, tmp2, tmp3
alternative_if ARM64_HAS_ADDRESS_AUTH
	__ptrauth_keys_install_kernel_nosync \tsk, \tmp1, \tmp2, \tmp3
alternative_else_nop_endif
	.endm

	.macro ptrauth_keys_install_kernel tsk, tmp1, tmp2, tmp3
alternative_if ARM64_HAS_ADDRESS_AUTH
	__ptrauth_keys_install_kernel_nosync \tsk, \tmp1, \tmp2, \tmp3
	isb
	.endif
alternative_else_nop_endif
	.endm

@@ -57,7 +65,10 @@ alternative_else_nop_endif
	.macro ptrauth_keys_install_user tsk, tmp1, tmp2, tmp3
	.endm

	.macro ptrauth_keys_install_kernel tsk, sync, tmp1, tmp2, tmp3
	.macro ptrauth_keys_install_kernel_nosync tsk, tmp1, tmp2, tmp3
	.endm

	.macro ptrauth_keys_install_kernel tsk, tmp1, tmp2, tmp3
	.endm

#endif /* CONFIG_ARM64_PTR_AUTH */
+2 −2
Original line number Diff line number Diff line
@@ -178,7 +178,7 @@ alternative_cb_end

	apply_ssbd 1, x22, x23

	ptrauth_keys_install_kernel tsk, 1, x20, x22, x23
	ptrauth_keys_install_kernel tsk, x20, x22, x23
	.else
	add	x21, sp, #S_FRAME_SIZE
	get_current_task tsk
@@ -900,7 +900,7 @@ SYM_FUNC_START(cpu_switch_to)
	ldr	lr, [x8]
	mov	sp, x9
	msr	sp_el0, x1
	ptrauth_keys_install_kernel x1, 1, x8, x9, x10
	ptrauth_keys_install_kernel x1, x8, x9, x10
	ret
SYM_FUNC_END(cpu_switch_to)
NOKPROBE(cpu_switch_to)
+1 −1
Original line number Diff line number Diff line
@@ -139,7 +139,7 @@ alternative_if ARM64_HAS_RAS_EXTN
	msr_s	SYS_DISR_EL1, xzr
alternative_else_nop_endif

	ptrauth_keys_install_kernel x14, 0, x1, x2, x3
	ptrauth_keys_install_kernel_nosync x14, x1, x2, x3
	isb
	ret
SYM_FUNC_END(cpu_do_resume)