diff options
author | Sven Schnelle <svens@stackframe.org> | 2021-10-15 21:56:12 +0200 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2021-11-04 11:21:20 +0100 |
commit | 014966dcf76bce5717f7d974d0410d3402a651c2 (patch) | |
tree | 77ff43b4ddf4302835e199321e8804e3c8b182b7 /arch/parisc | |
parent | 7ddb58cb0ecae8e8b6181d736a87667cc9ab8389 (diff) | |
download | linux-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.c | 2 |
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: |