powerpc/64s/interrupt: clean up interrupt return labels
authorNicholas Piggin <npiggin@gmail.com>
Wed, 30 Jun 2021 07:46:20 +0000 (17:46 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 30 Jun 2021 12:21:20 +0000 (22:21 +1000)
Normal kernel-interrupt exits can get interrupt_return_srr_user_restart
in their backtrace, which is an unusual and notable function, and it is
part of the user-interrupt exit path, which is doubly confusing.

Add non-local labels for both user and kernel interrupt exit cases to
address this and make the user and kernel cases more symmetric. Also get
rid of an unused label.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210630074621.2109197-9-npiggin@gmail.com
arch/powerpc/kernel/interrupt_64.S

index 5c18362693feb4723e516fbbc077aa37552d56c2..c4336e2e2ce893506f4ebce486bedb97b45c12b9 100644 (file)
@@ -509,7 +509,9 @@ interrupt_return_\srr\():
 _ASM_NOKPROBE_SYMBOL(interrupt_return_\srr\())
        ld      r4,_MSR(r1)
        andi.   r0,r4,MSR_PR
-       beq     .Lkernel_interrupt_return_\srr
+       beq     interrupt_return_\srr\()_kernel
+interrupt_return_\srr\()_user: /* make backtraces match the _kernel variant */
+_ASM_NOKPROBE_SYMBOL(interrupt_return_\srr\()_user)
        addi    r3,r1,STACK_FRAME_OVERHEAD
        bl      interrupt_exit_user_prepare
        cmpdi   r3,0
@@ -623,8 +625,8 @@ RESTART_TABLE(.Linterrupt_return_\srr\()_user_rst_start, .Linterrupt_return_\srr
 #endif
 
        .balign IFETCH_ALIGN_BYTES
-.Lkernel_interrupt_return_\srr\():
-.Linterrupt_return_\srr\()_kernel:
+interrupt_return_\srr\()_kernel:
+_ASM_NOKPROBE_SYMBOL(interrupt_return_\srr\()_kernel)
        addi    r3,r1,STACK_FRAME_OVERHEAD
        bl      interrupt_exit_kernel_prepare