powerpc/64/interrupt: add missing kprobe annotations on interrupt exit symbols
authorNicholas Piggin <npiggin@gmail.com>
Wed, 30 Jun 2021 07:46:19 +0000 (17:46 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 30 Jun 2021 12:21:20 +0000 (22:21 +1000)
If one interrupt exit symbol must not be kprobed, none of them can be,
without more justification for why it's safe. Disallow kprobing on any
of the (non-local) labels in the exit paths.

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-8-npiggin@gmail.com
arch/powerpc/kernel/interrupt_64.S

index 2c92bbca02cacbb1b3d3bf3f6ca539d7ddda9519..5c18362693feb4723e516fbbc077aa37552d56c2 100644 (file)
@@ -197,6 +197,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 .Lsyscall_vectored_\name\()_rst_end:
 
 syscall_vectored_\name\()_restart:
+_ASM_NOKPROBE_SYMBOL(syscall_vectored_\name\()_restart)
        GET_PACA(r13)
        ld      r1,PACA_EXIT_SAVE_R1(r13)
        ld      r2,PACATOC(r13)
@@ -238,6 +239,7 @@ _ASM_NOKPROBE_SYMBOL(system_call_vectored_emulate)
        .balign IFETCH_ALIGN_BYTES
        .globl system_call_common_real
 system_call_common_real:
+_ASM_NOKPROBE_SYMBOL(system_call_common_real)
        ld      r10,PACAKMSR(r13)       /* get MSR value for kernel */
        mtmsrd  r10
 
@@ -402,6 +404,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 
 #ifdef CONFIG_PPC_BOOK3S
 syscall_restart:
+_ASM_NOKPROBE_SYMBOL(syscall_restart)
        GET_PACA(r13)
        ld      r1,PACA_EXIT_SAVE_R1(r13)
        ld      r2,PACATOC(r13)
@@ -420,6 +423,7 @@ RESTART_TABLE(.Lsyscall_rst_start, .Lsyscall_rst_end, syscall_restart)
 
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 tabort_syscall:
+_ASM_NOKPROBE_SYMBOL(tabort_syscall)
        /* Firstly we need to enable TM in the kernel */
        mfmsr   r10
        li      r9, 1
@@ -602,6 +606,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 
 #ifdef CONFIG_PPC_BOOK3S
 interrupt_return_\srr\()_user_restart:
+_ASM_NOKPROBE_SYMBOL(interrupt_return_\srr\()_user_restart)
        GET_PACA(r13)
        ld      r1,PACA_EXIT_SAVE_R1(r13)
        ld      r2,PACATOC(r13)
@@ -735,6 +740,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 
 #ifdef CONFIG_PPC_BOOK3S
 interrupt_return_\srr\()_kernel_restart:
+_ASM_NOKPROBE_SYMBOL(interrupt_return_\srr\()_kernel_restart)
        GET_PACA(r13)
        ld      r1,PACA_EXIT_SAVE_R1(r13)
        ld      r2,PACATOC(r13)