Merge branches 'for-next/sysreg', 'for-next/sme', 'for-next/kselftest', 'for-next...
[linux-2.6-microblaze.git] / arch / arm64 / kernel / entry.S
index 8427cdc..ab2a6e3 100644 (file)
@@ -275,7 +275,7 @@ alternative_if ARM64_HAS_ADDRESS_AUTH
 alternative_else_nop_endif
 1:
 
-       scs_load tsk
+       scs_load_current
        .else
        add     x21, sp, #PT_REGS_SIZE
        get_current_task tsk
@@ -855,7 +855,7 @@ SYM_FUNC_START(cpu_switch_to)
        msr     sp_el0, x1
        ptrauth_keys_install_kernel x1, x8, x9, x10
        scs_save x0
-       scs_load x1
+       scs_load_current
        ret
 SYM_FUNC_END(cpu_switch_to)
 NOKPROBE(cpu_switch_to)
@@ -883,19 +883,19 @@ NOKPROBE(ret_from_fork)
  */
 SYM_FUNC_START(call_on_irq_stack)
 #ifdef CONFIG_SHADOW_CALL_STACK
-       stp     scs_sp, xzr, [sp, #-16]!
+       get_current_task x16
+       scs_save x16
        ldr_this_cpu scs_sp, irq_shadow_call_stack_ptr, x17
 #endif
+
        /* Create a frame record to save our LR and SP (implicit in FP) */
        stp     x29, x30, [sp, #-16]!
        mov     x29, sp
 
        ldr_this_cpu x16, irq_stack_ptr, x17
-       mov     x15, #IRQ_STACK_SIZE
-       add     x16, x16, x15
 
        /* Move to the new stack and call the function there */
-       mov     sp, x16
+       add     sp, x16, #IRQ_STACK_SIZE
        blr     x1
 
        /*
@@ -904,9 +904,7 @@ SYM_FUNC_START(call_on_irq_stack)
         */
        mov     sp, x29
        ldp     x29, x30, [sp], #16
-#ifdef CONFIG_SHADOW_CALL_STACK
-       ldp     scs_sp, xzr, [sp], #16
-#endif
+       scs_load_current
        ret
 SYM_FUNC_END(call_on_irq_stack)
 NOKPROBE(call_on_irq_stack)