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: Mark 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: Will Deacon <will@kernel.org>
This commit is contained in:
Родитель
6a8b55ed40
Коммит
d0055da526
|
@ -39,16 +39,24 @@ alternative_if ARM64_HAS_GENERIC_AUTH
|
||||||
alternative_else_nop_endif
|
alternative_else_nop_endif
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro ptrauth_keys_install_kernel tsk, sync, tmp1, tmp2, tmp3
|
.macro __ptrauth_keys_install_kernel_nosync tsk, tmp1, tmp2, tmp3
|
||||||
alternative_if ARM64_HAS_ADDRESS_AUTH
|
|
||||||
mov \tmp1, #THREAD_KEYS_KERNEL
|
mov \tmp1, #THREAD_KEYS_KERNEL
|
||||||
add \tmp1, \tsk, \tmp1
|
add \tmp1, \tsk, \tmp1
|
||||||
ldp \tmp2, \tmp3, [\tmp1, #PTRAUTH_KERNEL_KEY_APIA]
|
ldp \tmp2, \tmp3, [\tmp1, #PTRAUTH_KERNEL_KEY_APIA]
|
||||||
msr_s SYS_APIAKEYLO_EL1, \tmp2
|
msr_s SYS_APIAKEYLO_EL1, \tmp2
|
||||||
msr_s SYS_APIAKEYHI_EL1, \tmp3
|
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
|
isb
|
||||||
.endif
|
|
||||||
alternative_else_nop_endif
|
alternative_else_nop_endif
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
@ -57,7 +65,10 @@ alternative_else_nop_endif
|
||||||
.macro ptrauth_keys_install_user tsk, tmp1, tmp2, tmp3
|
.macro ptrauth_keys_install_user tsk, tmp1, tmp2, tmp3
|
||||||
.endm
|
.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
|
.endm
|
||||||
|
|
||||||
#endif /* CONFIG_ARM64_PTR_AUTH */
|
#endif /* CONFIG_ARM64_PTR_AUTH */
|
||||||
|
|
|
@ -178,7 +178,7 @@ alternative_cb_end
|
||||||
|
|
||||||
apply_ssbd 1, x22, x23
|
apply_ssbd 1, x22, x23
|
||||||
|
|
||||||
ptrauth_keys_install_kernel tsk, 1, x20, x22, x23
|
ptrauth_keys_install_kernel tsk, x20, x22, x23
|
||||||
.else
|
.else
|
||||||
add x21, sp, #S_FRAME_SIZE
|
add x21, sp, #S_FRAME_SIZE
|
||||||
get_current_task tsk
|
get_current_task tsk
|
||||||
|
@ -900,7 +900,7 @@ SYM_FUNC_START(cpu_switch_to)
|
||||||
ldr lr, [x8]
|
ldr lr, [x8]
|
||||||
mov sp, x9
|
mov sp, x9
|
||||||
msr sp_el0, x1
|
msr sp_el0, x1
|
||||||
ptrauth_keys_install_kernel x1, 1, x8, x9, x10
|
ptrauth_keys_install_kernel x1, x8, x9, x10
|
||||||
ret
|
ret
|
||||||
SYM_FUNC_END(cpu_switch_to)
|
SYM_FUNC_END(cpu_switch_to)
|
||||||
NOKPROBE(cpu_switch_to)
|
NOKPROBE(cpu_switch_to)
|
||||||
|
|
|
@ -139,7 +139,7 @@ alternative_if ARM64_HAS_RAS_EXTN
|
||||||
msr_s SYS_DISR_EL1, xzr
|
msr_s SYS_DISR_EL1, xzr
|
||||||
alternative_else_nop_endif
|
alternative_else_nop_endif
|
||||||
|
|
||||||
ptrauth_keys_install_kernel x14, 0, x1, x2, x3
|
ptrauth_keys_install_kernel_nosync x14, x1, x2, x3
|
||||||
isb
|
isb
|
||||||
ret
|
ret
|
||||||
SYM_FUNC_END(cpu_do_resume)
|
SYM_FUNC_END(cpu_do_resume)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче