powerpc/64s: Fix mce accounting for powernv
authorNicholas Piggin <npiggin@gmail.com>
Tue, 1 Aug 2017 12:00:51 +0000 (22:00 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 10 Aug 2017 12:30:00 +0000 (22:30 +1000)
On 64-bit Book3s, when we're in HV mode, we have already counted the
machine check exception in machine_check_early().

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
[mpe: Use IS_ENABLED() rather than an #ifdef]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/traps.c

index bfcfd9ef09f20a3980f544373616e6ceba3de88c..d42c567e3c2927bc4d0d6e74b7ce663c6077f22f 100644 (file)
@@ -755,7 +755,9 @@ void machine_check_exception(struct pt_regs *regs)
        enum ctx_state prev_state = exception_enter();
        int recover = 0;
 
-       __this_cpu_inc(irq_stat.mce_exceptions);
+       /* 64s accounts the mce in machine_check_early when in HVMODE */
+       if (!IS_ENABLED(CONFIG_PPC_BOOK3S_64) || !cpu_has_feature(CPU_FTR_HVMODE))
+               __this_cpu_inc(irq_stat.mce_exceptions);
 
        add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE);