]> git.baikalelectronics.ru Git - kernel.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)
commitad305a2753627b406ab8c8ab8d1c8ee3f16c2814
tree1ceb55b53e769a3cae7ebfa3d4b2a6454b2318b9
parentac89821833b908aa9b36076b7e0a194d9305dced
powerpc/powernv: Fix CPU idle to be called with IRQs disabled

Commit df510dbc58329 ("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 fa2af794e69ef ("powerpc/powernv: Simplify lazy IRQ
handling in CPU offline").

Fixes: df510dbc58329 ("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