As soon as we know the name of the machine description we're using,
add it to the dump stack arch description, which is printed in case of
an oops.

eg: Hardware name: ... machine:pSeries

Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
---
 arch/powerpc/include/asm/setup.h   |  2 ++
 arch/powerpc/kernel/setup-common.c | 14 ++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/arch/powerpc/include/asm/setup.h b/arch/powerpc/include/asm/setup.h
index 85143849a586..e29e83f8a89c 100644
--- a/arch/powerpc/include/asm/setup.h
+++ b/arch/powerpc/include/asm/setup.h
@@ -88,6 +88,8 @@ unsigned long __init prom_init(unsigned long r3, unsigned 
long r4,
                               unsigned long pp, unsigned long r6,
                               unsigned long r7, unsigned long kbase);
 
+extern struct seq_buf ppc_hw_desc;
+
 #endif /* !__ASSEMBLY__ */
 
 #endif /* _ASM_POWERPC_SETUP_H */
diff --git a/arch/powerpc/kernel/setup-common.c 
b/arch/powerpc/kernel/setup-common.c
index dd98f43bd685..42279c3f1d31 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -18,6 +18,7 @@
 #include <linux/delay.h>
 #include <linux/initrd.h>
 #include <linux/platform_device.h>
+#include <linux/printk.h>
 #include <linux/seq_file.h>
 #include <linux/ioport.h>
 #include <linux/console.h>
@@ -25,6 +26,7 @@
 #include <linux/root_dev.h>
 #include <linux/cpu.h>
 #include <linux/unistd.h>
+#include <linux/seq_buf.h>
 #include <linux/serial.h>
 #include <linux/serial_8250.h>
 #include <linux/percpu.h>
@@ -588,6 +590,15 @@ static __init int add_pcspkr(void)
 device_initcall(add_pcspkr);
 #endif /* CONFIG_PCSPKR_PLATFORM */
 
+static char ppc_hw_desc_buf[128] __initdata;
+
+struct seq_buf ppc_hw_desc __initdata = {
+       .buffer = ppc_hw_desc_buf,
+       .size = sizeof(ppc_hw_desc_buf),
+       .len = 0,
+       .readpos = 0,
+};
+
 static __init void probe_machine(void)
 {
        extern struct machdep_calls __machine_desc_start;
@@ -628,6 +639,9 @@ static __init void probe_machine(void)
                for (;;);
        }
 
+       seq_buf_printf(&ppc_hw_desc,"machine:%s ", ppc_md.name);
+       dump_stack_set_arch_desc(ppc_hw_desc.buffer);
+
        printk(KERN_INFO "Using %s machine description\n", ppc_md.name);
 }
 
-- 
2.37.3

Reply via email to