]> www.infradead.org Git - users/willy/linux.git/commitdiff
arm64: remove ptrauth_keys_install_kernel sync arg
authorMark Rutland <mark.rutland@arm.com>
Thu, 23 Apr 2020 10:16:05 +0000 (11:16 +0100)
committerWill Deacon <will@kernel.org>
Tue, 28 Apr 2020 10:23:21 +0000 (11:23 +0100)
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>
arch/arm64/include/asm/asm_pointer_auth.h
arch/arm64/kernel/entry.S
arch/arm64/mm/proc.S

index ce2a8486992bb86264c247477a18b37eb3d74796..c85540a911d3c2b28bb8fbd348f0d1ee87bc9187 100644 (file)
@@ -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 */
index ddcde093c433b83e0c86d28d7a5d5f81367d6c86..a9265fef914fe4765c4e7470da244e174ca06c74 100644 (file)
@@ -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)
index 197a9ba2d5ea2c859bbc2ce2445f4ee55c09a3df..0401342741e60a67658e91b4f119412141fa6100 100644 (file)
@@ -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)