Commit 1ca04a4c authored by Rob Gardner's avatar Rob Gardner Committed by David S. Miller

sparc64: Don't set %pil in rtrap_nmi too early

Commit 28a1f533 delays setting %pil to avoid potential
hardirq stack overflow in the common rtrap_irq path.
Setting %pil also needs to be delayed in the rtrap_nmi
path for the same reason.
Signed-off-by: default avatarRob Gardner <rob.gardner@oracle.com>
Signed-off-by: default avatarDave Aldridge <david.j.aldridge@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 82924e54
...@@ -73,7 +73,13 @@ rtrap_nmi: ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1 ...@@ -73,7 +73,13 @@ rtrap_nmi: ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
andn %l1, %l4, %l1 andn %l1, %l4, %l1
srl %l4, 20, %l4 srl %l4, 20, %l4
ba,pt %xcc, rtrap_no_irq_enable ba,pt %xcc, rtrap_no_irq_enable
wrpr %l4, %pil nop
/* Do not actually set the %pil here. We will do that
* below after we clear PSTATE_IE in the %pstate register.
* If we re-enable interrupts here, we can recurse down
* the hardirq stack potentially endlessly, causing a
* stack overflow.
*/
.align 64 .align 64
.globl rtrap_irq, rtrap, irqsz_patchme, rtrap_xcall .globl rtrap_irq, rtrap, irqsz_patchme, rtrap_xcall
......
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