On Jun 17, 2009, at 10:43 PM, Benjamin Herrenschmidt wrote:
Based on initial work from: Dale Farnsworth <d...@farnsworth.org> Add the low level irq tracing hooks for 32-bit powerpc needed to enable full lockdep functionality. The approach taken to deal with the code in entry_32.S is that we don't trace all the transitions of MSR:EE when we just turn it off to peek at TI_FLAGS without races. Only when we are calling into C code or returning from exceptions with a state that have changed from what lockdep thinks. There's a little bugger though: If we take an exception that keeps interrupts enabled (such as an alignment exception) while interrupts are enabled, we will call trace_hardirqs_on() on the way back spurriously. Not a big deal, but to get rid of it would require remembering in pt_regs that the exception was one of the type that kept interrupts enabled which we don't know at this stage. (Well, we could test all cases for regs->trap but that sucks too much). Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org> --- This one fixes a bug, trace_hardirqs_on was too late in the restore: code path and would clobber things. This boots fine now on a PowerBook.
Tested-by: Kumar Gala <ga...@kernel.crashing.org> on SMP e500 based system (8572) - k _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev