[RFC PATCH 1/1] powerpc/ftrace: Exclude real mode code from
Naveen N. Rao
naveen.n.rao at linux.vnet.ibm.com
Thu Mar 8 03:46:19 AEDT 2018
We can't take a trap in most parts of real mode code. Instead of adding
the 'notrace' annotation to all C functions that can be invoked from
real mode, detect that we are in real mode on ftrace entry and return
back.
Signed-off-by: Naveen N. Rao <naveen.n.rao at linux.vnet.ibm.com>
---
This RFC only handles -mprofile-kernel to demonstrate the approach being
considered. We will need to handle other ftrace entry if we decide to
continue down this path.
- Naveen
arch/powerpc/kernel/trace/ftrace_64_mprofile.S | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
index 3f3e81852422..ecc0e8e38ead 100644
--- a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
+++ b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
@@ -56,6 +56,21 @@ _GLOBAL(ftrace_caller)
/* Load special regs for save below */
mfmsr r8
+
+ /* Only proceed if we are not in real mode and can take interrupts */
+ andi. r9, r8, MSR_IR|MSR_DR|MSR_RI
+ cmpdi r9, MSR_IR|MSR_DR|MSR_RI
+ beq 1f
+ mflr r8
+ mtctr r8
+ REST_GPR(9, r1)
+ REST_GPR(8, r1)
+ addi r1, r1, SWITCH_FRAME_SIZE
+ ld r0, LRSAVE(r1)
+ mtlr r0
+ bctr
+
+1:
mfctr r9
mfxer r10
mfcr r11
--
2.16.1
More information about the Linuxppc-dev
mailing list