]> asedeno.scripts.mit.edu Git - linux.git/commit
powerpc/powernv: Fix CPU idle to be called with IRQs disabled
authorNicholas Piggin <npiggin@gmail.com>
Tue, 22 Oct 2019 11:58:14 +0000 (21:58 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 29 Oct 2019 10:47:01 +0000 (21:47 +1100)
commit7d6475051fb3d9339c5c760ed9883bc0a9048b21
tree1ceb55b53e769a3cae7ebfa3d4b2a6454b2318b9
parent05d9a952832cb206a32e3705eff6edebdb2207e7
powerpc/powernv: Fix CPU idle to be called with IRQs disabled

Commit e78a7614f3876 ("idle: Prevent late-arriving interrupts from
disrupting offline") changes arch_cpu_idle_dead to be called with
interrupts disabled, which triggers the WARN in pnv_smp_cpu_kill_self.

Fix this by fixing up irq_happened after hard disabling, rather than
requiring there are no pending interrupts, similarly to what was done
done until commit 2525db04d1cc5 ("powerpc/powernv: Simplify lazy IRQ
handling in CPU offline").

Fixes: e78a7614f3876 ("idle: Prevent late-arriving interrupts from disrupting offline")
Reported-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
[mpe: Add unexpected_mask rather than checking for known bad values,
      change the WARN_ON() to a WARN_ON_ONCE()]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20191022115814.22456-1-npiggin@gmail.com
arch/powerpc/platforms/powernv/smp.c