powerpc/entry32: Blacklist syscall exit points for kprobe.
authorChristophe Leroy <christophe.leroy@c-s.fr>
Tue, 31 Mar 2020 16:03:46 +0000 (16:03 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 2 Jun 2020 10:59:12 +0000 (20:59 +1000)
kprobe does not handle events happening in real mode.

The very last part of syscall cannot support a trap.
Add a symbol syscall_exit_finish to identify that part and
blacklist it from kprobe.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/23eddf49abb03d1359fa0be4206998eb3800f42c.1585670437.git.christophe.leroy@c-s.fr
arch/powerpc/kernel/entry_32.S

index c9fc6ea36bc6c181a31c2950d2e3ceefaa1bfd39..5fa192b33509acaa67c9b7e5b8aed23644d4492d 100644 (file)
@@ -462,6 +462,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
        lwz     r7,_NIP(r1)
        lwz     r2,GPR2(r1)
        lwz     r1,GPR1(r1)
+syscall_exit_finish:
 #if defined(CONFIG_PPC_8xx) && defined(CONFIG_PERF_EVENTS)
        mtspr   SPRN_NRI, r0
 #endif
@@ -469,6 +470,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
        mtspr   SPRN_SRR1,r8
        SYNC
        RFI
+_ASM_NOKPROBE_SYMBOL(syscall_exit_finish)
 #ifdef CONFIG_44x
 2:     li      r7,0
        iccci   r0,r0
@@ -600,6 +602,7 @@ ret_from_kernel_syscall:
        mtspr   SPRN_SRR1, r10
        SYNC
        RFI
+_ASM_NOKPROBE_SYMBOL(ret_from_kernel_syscall)
 
 /*
  * The fork/clone functions need to copy the full register set into