summaryrefslogtreecommitdiffstats
path: root/arch/parisc
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2021-10-15 21:56:12 +0200
committerHelge Deller <deller@gmx.de>2021-11-04 11:21:20 +0100
commit014966dcf76bce5717f7d974d0410d3402a651c2 (patch)
tree77ff43b4ddf4302835e199321e8804e3c8b182b7 /arch/parisc
parent7ddb58cb0ecae8e8b6181d736a87667cc9ab8389 (diff)
downloadlinux-stable-014966dcf76bce5717f7d974d0410d3402a651c2.tar.gz
linux-stable-014966dcf76bce5717f7d974d0410d3402a651c2.tar.bz2
linux-stable-014966dcf76bce5717f7d974d0410d3402a651c2.zip
parisc: don't enable irqs unconditionally in handle_interruption()
If the previous context had interrupts disabled, we should better keep them disabled. This was noticed in the unwinding code where a copy_from_kernel_nofault() triggered a page fault, and after the fixup by the page fault handler interrupts where suddenly enabled. Signed-off-by: Sven Schnelle <svens@stackframe.org> Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc')
-rw-r--r--arch/parisc/kernel/traps.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
index 690e6abcaf22..b11fb26ce299 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
@@ -481,7 +481,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
if (code == 1)
pdc_console_restart(); /* switch back to pdc if HPMC */
- else
+ else if (!irqs_disabled_flags(regs->gr[0]))
local_irq_enable();
/* Security check: