On Dec 6, 2006, at 4:09 PM, Paul Mackerras wrote:
Scott Wood writes:
quoted
Is there any reason why ProgramCheck needs to be EXC_XFER_STD?
Yes. It used to be EXC_XFER_EE, but I changed it to EXC_XFER_STD
because I didn't want the possibility of preemption on the way from a
kernel breakpoint into a kernel debugger (xmon/kgdb/etc.).
I think the solution to your problem is to rearrange
program_check_exception a little, to make sure we do the
local_irq_enable before calling do_mathemu (but still after the
debugger_bpt call).
We don't need to rearrange anything, just put the local_irq_enable()
call in do_mathemu(). If we are a debugger than REASON_TRAP will
have to be set and we dont bother with do_mathemu() than.
Do you think we should also move the local_irq_enable() that exists
in the handler into emulate_instruction().
- k