Commit cd8a5673 authored by Paul Mackerras's avatar Paul Mackerras

powerpc: Fix might-sleep warning in program check exception handler

On 32-bit, the exception prolog for the program check exception doesn't
enable interrupts early on.  If it is an illegal instruction exception,
we read the instruction in order to emulate certain instructions, and
the get_user of the instruction triggers a WARN_ON since interrupts
are still disabled.  This adds a local_irq_enable() to enable
interrupts before reading the instruction.
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent c499ec24
...@@ -814,6 +814,8 @@ void __kprobes program_check_exception(struct pt_regs *regs) ...@@ -814,6 +814,8 @@ void __kprobes program_check_exception(struct pt_regs *regs)
return; return;
} }
local_irq_enable();
/* Try to emulate it if we should. */ /* Try to emulate it if we should. */
if (reason & (REASON_ILLEGAL | REASON_PRIVILEGED)) { if (reason & (REASON_ILLEGAL | REASON_PRIVILEGED)) {
switch (emulate_instruction(regs)) { switch (emulate_instruction(regs)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment