Commit 5f32e836 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman

powerpc/32: Blacklist functions running with MMU disabled for kprobe

kprobe does not handle events happening in real mode, all
functions running with MMU disabled have to be blacklisted.
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
Acked-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/3bf57066d05518644dee0840af69d36ab5086729.1585670437.git.christophe.leroy@c-s.fr
parent 32746dfe
...@@ -288,6 +288,7 @@ _GLOBAL(__init_fpu_registers) ...@@ -288,6 +288,7 @@ _GLOBAL(__init_fpu_registers)
mtmsr r10 mtmsr r10
isync isync
blr blr
_ASM_NOKPROBE_SYMBOL(__init_fpu_registers)
/* Definitions for the table use to save CPU states */ /* Definitions for the table use to save CPU states */
...@@ -483,4 +484,5 @@ _GLOBAL(__restore_cpu_setup) ...@@ -483,4 +484,5 @@ _GLOBAL(__restore_cpu_setup)
1: 1:
mtcr r7 mtcr r7
blr blr
_ASM_NOKPROBE_SYMBOL(__restore_cpu_setup)
...@@ -312,6 +312,7 @@ stack_ovf: ...@@ -312,6 +312,7 @@ stack_ovf:
mtspr SPRN_SRR1,r10 mtspr SPRN_SRR1,r10
SYNC SYNC
RFI RFI
_ASM_NOKPROBE_SYMBOL(stack_ovf)
#endif #endif
#ifdef CONFIG_TRACE_IRQFLAGS #ifdef CONFIG_TRACE_IRQFLAGS
...@@ -1326,6 +1327,7 @@ nonrecoverable: ...@@ -1326,6 +1327,7 @@ nonrecoverable:
bl unrecoverable_exception bl unrecoverable_exception
/* shouldn't return */ /* shouldn't return */
b 4b b 4b
_ASM_NOKPROBE_SYMBOL(nonrecoverable)
.section .bss .section .bss
.align 2 .align 2
...@@ -1380,4 +1382,5 @@ _GLOBAL(enter_rtas) ...@@ -1380,4 +1382,5 @@ _GLOBAL(enter_rtas)
mtspr SPRN_SRR0,r8 mtspr SPRN_SRR0,r8
mtspr SPRN_SRR1,r9 mtspr SPRN_SRR1,r9
RFI /* return to caller */ RFI /* return to caller */
_ASM_NOKPROBE_SYMBOL(enter_rtas)
#endif /* CONFIG_PPC_RTAS */ #endif /* CONFIG_PPC_RTAS */
...@@ -119,6 +119,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_VSX) ...@@ -119,6 +119,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_VSX)
/* restore registers and return */ /* restore registers and return */
/* we haven't used ctr or xer or lr */ /* we haven't used ctr or xer or lr */
blr blr
_ASM_NOKPROBE_SYMBOL(load_up_fpu)
/* /*
* save_fpu(tsk) * save_fpu(tsk)
......
...@@ -187,6 +187,7 @@ BEGIN_FTR_SECTION ...@@ -187,6 +187,7 @@ BEGIN_FTR_SECTION
mtspr SPRN_HID1, r9 mtspr SPRN_HID1, r9
END_FTR_SECTION_IFSET(CPU_FTR_DUAL_PLL_750FX) END_FTR_SECTION_IFSET(CPU_FTR_DUAL_PLL_750FX)
b transfer_to_handler_cont b transfer_to_handler_cont
_ASM_NOKPROBE_SYMBOL(power_save_ppc32_restore)
.data .data
......
...@@ -90,3 +90,4 @@ _GLOBAL(power_save_ppc32_restore) ...@@ -90,3 +90,4 @@ _GLOBAL(power_save_ppc32_restore)
#endif #endif
b transfer_to_handler_cont b transfer_to_handler_cont
_ASM_NOKPROBE_SYMBOL(power_save_ppc32_restore)
...@@ -455,5 +455,6 @@ _GLOBAL(__inval_enable_L1) ...@@ -455,5 +455,6 @@ _GLOBAL(__inval_enable_L1)
sync sync
blr blr
_ASM_NOKPROBE_SYMBOL(__inval_enable_L1)
...@@ -36,6 +36,8 @@ _GLOBAL(add_reloc_offset) ...@@ -36,6 +36,8 @@ _GLOBAL(add_reloc_offset)
add r3,r3,r5 add r3,r3,r5
mtlr r0 mtlr r0
blr blr
_ASM_NOKPROBE_SYMBOL(reloc_offset)
_ASM_NOKPROBE_SYMBOL(add_reloc_offset)
.align 3 .align 3
2: PPC_LONG 1b 2: PPC_LONG 1b
......
...@@ -246,6 +246,7 @@ _GLOBAL(real_readb) ...@@ -246,6 +246,7 @@ _GLOBAL(real_readb)
sync sync
isync isync
blr blr
_ASM_NOKPROBE_SYMBOL(real_readb)
/* /*
* Do an IO access in real mode * Do an IO access in real mode
...@@ -263,6 +264,7 @@ _GLOBAL(real_writeb) ...@@ -263,6 +264,7 @@ _GLOBAL(real_writeb)
sync sync
isync isync
blr blr
_ASM_NOKPROBE_SYMBOL(real_writeb)
#endif /* CONFIG_40x */ #endif /* CONFIG_40x */
......
...@@ -395,6 +395,7 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS) ...@@ -395,6 +395,7 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS)
li r3,0 li r3,0
blr blr
_ASM_NOKPROBE_SYMBOL(swsusp_arch_resume)
/* FIXME:This construct is actually not useful since we don't shut /* FIXME:This construct is actually not useful since we don't shut
* down the instruction MMU, we could just flip back MSR-DR on. * down the instruction MMU, we could just flip back MSR-DR on.
...@@ -406,4 +407,5 @@ turn_on_mmu: ...@@ -406,4 +407,5 @@ turn_on_mmu:
sync sync
isync isync
rfi rfi
_ASM_NOKPROBE_SYMBOL(turn_on_mmu)
...@@ -89,6 +89,7 @@ _GLOBAL(load_up_altivec) ...@@ -89,6 +89,7 @@ _GLOBAL(load_up_altivec)
REST_32VRS(0,r4,r6) REST_32VRS(0,r4,r6)
/* restore registers and return */ /* restore registers and return */
blr blr
_ASM_NOKPROBE_SYMBOL(load_up_altivec)
/* /*
* save_altivec(tsk) * save_altivec(tsk)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment