On Fri Oct 21, 2022 at 3:29 AM AEST, Naveen N. Rao wrote: > Ensure a more consistent pt_regs across kprobes, optprobes and > KPROBES_ON_FTRACE: > - Drop setting trap to 0x700 under optprobes. This is not accurate and > is unnecessary. Instead, zero it out for both optprobes and > KPROBES_ON_FTRACE.
Okay I think. > - Save irq soft mask in the ftrace handler, similar to what we do in > optprobes and trap-based kprobes. This advertises the irqs status of regs correctly, whereas previously it was uninitialised. > - Drop setting orig_gpr3 and result to zero in optprobes. These are not > relevant under kprobes and should not be used by the handlers. This is for CFAR, which we can't get anyway because we just branched here. I would rather zero it explicitly though. Otherwise, Reviewed-by: Nicholas Piggin <npig...@gmail.com> > > Signed-off-by: Naveen N. Rao <naveen.n....@linux.vnet.ibm.com> > --- > arch/powerpc/kernel/optprobes_head.S | 5 +---- > arch/powerpc/kernel/trace/ftrace_mprofile.S | 6 ++++++ > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/arch/powerpc/kernel/optprobes_head.S > b/arch/powerpc/kernel/optprobes_head.S > index cd4e7bc32609d3..06df09b4e8b155 100644 > --- a/arch/powerpc/kernel/optprobes_head.S > +++ b/arch/powerpc/kernel/optprobes_head.S > @@ -49,11 +49,8 @@ optprobe_template_entry: > /* Save SPRS */ > mfmsr r5 > PPC_STL r5,_MSR(r1) > - li r5,0x700 > - PPC_STL r5,_TRAP(r1) > li r5,0 > - PPC_STL r5,ORIG_GPR3(r1) > - PPC_STL r5,RESULT(r1) > + PPC_STL r5,_TRAP(r1) > mfctr r5 > PPC_STL r5,_CTR(r1) > mflr r5 > diff --git a/arch/powerpc/kernel/trace/ftrace_mprofile.S > b/arch/powerpc/kernel/trace/ftrace_mprofile.S > index d031093bc43671..f82004089426e6 100644 > --- a/arch/powerpc/kernel/trace/ftrace_mprofile.S > +++ b/arch/powerpc/kernel/trace/ftrace_mprofile.S > @@ -107,6 +107,12 @@ > PPC_STL r9, _CTR(r1) > PPC_STL r10, _XER(r1) > PPC_STL r11, _CCR(r1) > +#ifdef CONFIG_PPC64 > + lbz r7, PACAIRQSOFTMASK(r13) > + std r7, SOFTE(r1) > +#endif > + li r8, 0 > + PPC_STL r8, _TRAP(r1) > .endif > > /* Load &pt_regs in r6 for call below */ > -- > 2.38.0