powerpc/mce: Move 64-bit machine check code into mce.c
authorMichael Ellerman <mpe@ellerman.id.au>
Tue, 8 Aug 2017 06:39:24 +0000 (16:39 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 10 Aug 2017 13:31:31 +0000 (23:31 +1000)
We already have mce.c which is built for 64bit and contains other parts
of the machine check code, so move these bits in there too.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/mce.c
arch/powerpc/kernel/traps.c

index e0e131e662ed347ddb03457ec89f0e77bb95f65f..9b2ea7e71c06df9b302f1f017b90b66e3d403bd0 100644 (file)
 #undef DEBUG
 #define pr_fmt(fmt) "mce: " fmt
 
+#include <linux/hardirq.h>
 #include <linux/types.h>
 #include <linux/ptrace.h>
 #include <linux/percpu.h>
 #include <linux/export.h>
 #include <linux/irq_work.h>
+
+#include <asm/machdep.h>
 #include <asm/mce.h>
 
 static DEFINE_PER_CPU(int, mce_nest_count);
@@ -446,3 +449,33 @@ uint64_t get_mce_fault_addr(struct machine_check_event *evt)
        return 0;
 }
 EXPORT_SYMBOL(get_mce_fault_addr);
+
+/*
+ * This function is called in real mode. Strictly no printk's please.
+ *
+ * regs->nip and regs->msr contains srr0 and ssr1.
+ */
+long machine_check_early(struct pt_regs *regs)
+{
+       long handled = 0;
+
+       __this_cpu_inc(irq_stat.mce_exceptions);
+
+       if (cur_cpu_spec && cur_cpu_spec->machine_check_early)
+               handled = cur_cpu_spec->machine_check_early(regs);
+       return handled;
+}
+
+long hmi_exception_realmode(struct pt_regs *regs)
+{
+       __this_cpu_inc(irq_stat.hmi_exceptions);
+
+       wait_for_subcore_guest_exit();
+
+       if (ppc_md.hmi_exception_early)
+               ppc_md.hmi_exception_early(regs);
+
+       wait_for_tb_resync();
+
+       return 0;
+}
index ef957c28bbc4163fc3d32694492b41ecc8318e21..a891c277040bac0e42a99e8f7d78f9de5ee77c39 100644 (file)
@@ -314,39 +314,6 @@ out:
        /* What should we do here? We could issue a shutdown or hard reset. */
 }
 
-#ifdef CONFIG_PPC64
-/*
- * This function is called in real mode. Strictly no printk's please.
- *
- * regs->nip and regs->msr contains srr0 and ssr1.
- */
-long machine_check_early(struct pt_regs *regs)
-{
-       long handled = 0;
-
-       __this_cpu_inc(irq_stat.mce_exceptions);
-
-       if (cur_cpu_spec && cur_cpu_spec->machine_check_early)
-               handled = cur_cpu_spec->machine_check_early(regs);
-       return handled;
-}
-
-long hmi_exception_realmode(struct pt_regs *regs)
-{
-       __this_cpu_inc(irq_stat.hmi_exceptions);
-
-       wait_for_subcore_guest_exit();
-
-       if (ppc_md.hmi_exception_early)
-               ppc_md.hmi_exception_early(regs);
-
-       wait_for_tb_resync();
-
-       return 0;
-}
-
-#endif
-
 /*
  * I/O accesses can cause machine checks on powermacs.
  * Check if the NIP corresponds to the address of a sync