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: 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/3bf57066d05518644dee0840af69d36ab5086729.1585670437.git.christophe.leroy@c-s.fr
This commit is contained in:
committed by
Michael Ellerman
parent
32746dfe4c
commit
5f32e8361c
@@ -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)
|
|||||||
1:
|
1:
|
||||||
mtcr r7
|
mtcr r7
|
||||||
blr
|
blr
|
||||||
|
_ASM_NOKPROBE_SYMBOL(__restore_cpu_setup)
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
|||||||
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)
|
|||||||
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)
|
|||||||
/* 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
|
|||||||
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)
|
|||||||
#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)
|
|||||||
sync
|
sync
|
||||||
|
|
||||||
blr
|
blr
|
||||||
|
_ASM_NOKPROBE_SYMBOL(__inval_enable_L1)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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:
|
|||||||
sync
|
sync
|
||||||
isync
|
isync
|
||||||
rfi
|
rfi
|
||||||
|
_ASM_NOKPROBE_SYMBOL(turn_on_mmu)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user