Messages in this thread | | | Date | Mon, 26 Nov 2012 19:10:26 +0100 | From | Sebastian Andrzej Siewior <> | Subject | Re: [PATCH 1/2] powerpc: Move the single step enable code to a generic path |
| |
On 11/26/2012 12:05 PM, Suzuki K. Poulose wrote: > diff --git a/arch/powerpc/include/asm/probes.h b/arch/powerpc/include/asm/probes.h > index 5f1e15b..836e9b9 100644 > --- a/arch/powerpc/include/asm/probes.h > +++ b/arch/powerpc/include/asm/probes.h > @@ -38,5 +38,34 @@ typedef u32 ppc_opcode_t; > #define is_trap(instr) (IS_TW(instr) || IS_TWI(instr)) > #endif /* CONFIG_PPC64 */ > > +#ifdef CONFIG_PPC_ADV_DEBUG_REGS > +#define MSR_SINGLESTEP (MSR_DE) > +#else > +#define MSR_SINGLESTEP (MSR_SE) > +#endif > + > +/* Enable single stepping for the current task */ > +static inline void enable_single_step(struct pt_regs *regs) > +{ > + > + /* > + * We turn off async exceptions to ensure that the single step will > + * be for the instruction we have the kprobe on, if we dont its it is
> + * possible we'd get the single step reported for an exception handler > + * like Decrementer or External Interrupt > + */
Hmmm. The TRM for E400 says
|5.11.1 e500 Exception Priorities |The following is a prioritized listing of e500 exceptions: | 4. Critical input | 5. Debug interrupt | 6. External input | 22. Decrementer
The list has been cut down a little. That means the debug interrupt comes before external interrupt and before the decrement fires.
And if single step is what wakes you up then DBSR[ICMP] is set. Am I missing something or is this FSL only not not book-e
> #endif /* __KERNEL__ */ > #endif /* _ASM_POWERPC_PROBES_H */
Sebastian
| |