powerpc/64: fix irq replay missing preempt
authorNicholas Piggin <npiggin@gmail.com>
Tue, 15 Sep 2020 11:46:45 +0000 (21:46 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 6 Oct 2020 12:22:23 +0000 (23:22 +1100)
commit903fd31d3212ab72d564c68f6cfb5d04db68773e
tree0b5c217be7466699a323f107ffa04590f728e7ec
parentcdb1ea0276bd6a225aa1203b4829b8c3c0d4d069
powerpc/64: fix irq replay missing preempt

Prior to commit 3282a3da25bd ("powerpc/64: Implement soft interrupt
replay in C"), replayed interrupts returned by the regular interrupt
exit code, which performs preemption in case an interrupt had set
need_resched.

This logic was missed by the conversion. Adding preempt_disable/enable
around the interrupt replay and final irq enable will reschedule if
needed.

Fixes: 3282a3da25bd ("powerpc/64: Implement soft interrupt replay in C")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200915114650.3980244-1-npiggin@gmail.com
arch/powerpc/kernel/irq.c