linux/arch/powerpc
Nicholas Piggin 03ebdd1eb9 powerpc/64: Fix __check_irq_replay missing decrementer interrupt
commit 3db40c312c upstream.

If the decrementer wraps again and de-asserts the decrementer
exception while hard-disabled, __check_irq_replay() has a test to
notice the wrap when interrupts are re-enabled.

The decrementer check must be done when clearing the PACA_IRQ_HARD_DIS
flag, not when the PACA_IRQ_DEC flag is tested. Previously this worked
because the decrementer interrupt was always the first one checked
after clearing the hard disable flag, but HMI check was moved ahead of
that, which introduced this bug.

This can cause a missed decrementer interrupt if we soft-disable
interrupts then take an HMI which is recorded in irq_happened, then
hard-disable interrupts for > 4s to wrap the decrementer.

Fixes: e0e0d6b739 ("powerpc/64: Replay hypervisor maintenance interrupt first")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-08-11 08:49:30 -07:00
..
boot powerpc/boot: Fix zImage TOC alignment 2017-03-26 13:05:57 +02:00
configs Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next 2016-10-11 20:07:56 +11:00
crypto powerpc/crypto/crc32c-vpmsum: Fix missing preempt_disable() 2017-04-12 12:41:13 +02:00
include Revert "powerpc/numa: Fix percpu allocations to be NUMA aware" 2017-08-06 18:59:41 -07:00
kernel powerpc/64: Fix __check_irq_replay missing decrementer interrupt 2017-08-11 08:49:30 -07:00
kvm KVM: PPC: Book3S HV: Save/restore host values of debug registers 2017-08-06 18:59:41 -07:00
lib powerpc: Fix emulation of mfocrf in emulate_step() 2017-07-27 15:08:00 -07:00
math-emu powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mm powerpc/mm/radix: Properly clear process table entry 2017-07-27 15:08:00 -07:00
net powerpc/bpf: Add support for bpf constant blinding 2016-10-04 20:33:20 +11:00
oprofile powerpc/sparse: Make a bunch of things static 2016-09-13 17:35:47 +10:00
perf powerpc/perf: Fix oops when kthread execs user process 2017-06-29 13:00:28 +02:00
platforms powerpc/pseries: Fix of_node_put() underflow during reconfig remove 2017-08-06 18:59:40 -07:00
scripts powerpc/ftrace: Add Kconfig & Make glue for mprofile-kernel 2016-03-07 14:53:56 +11:00
sysdev powerpc/powernv: Properly set "host-ipi" on IPIs 2017-06-17 06:41:50 +02:00
xmon powerpc/xmon: Don't use ld on 32-bit 2016-09-13 17:37:02 +10:00
Kconfig powerpc/ftrace: Fix confusing help text for DISABLE_MPROFILE_KERNEL 2017-05-14 14:00:14 +02:00
Kconfig.debug powerpc/mm: Catch usage of cpu/mmu_has_feature() before jump label init 2016-08-01 11:15:06 +10:00
Makefile arch/powerpc: Add CONFIG_FSL_DPAA to corenetXX_smp_defconfig 2016-09-25 02:39:01 -05:00
relocs_check.sh powerpc/64: whitelist unresolved modversions CRCs 2016-09-22 14:46:31 +02:00