sparc64: Don't set %pil in rtrap_nmi too early
Commit 28a1f53
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: Rob Gardner <rob.gardner@oracle.com>
Signed-off-by: Dave Aldridge <david.j.aldridge@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
82924e542f
commit
1ca04a4ce0
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue