Add vmcoreinfo
[pandora-kernel.git] / arch / ia64 / kernel / machine_kexec.c
index 58e943a..40f9c3e 100644 (file)
@@ -15,6 +15,8 @@
 #include <linux/cpu.h>
 #include <linux/irq.h>
 #include <linux/efi.h>
+#include <linux/numa.h>
+#include <linux/mmzone.h>
 #include <asm/mmu_context.h>
 #include <asm/setup.h>
 #include <asm/delay.h>
@@ -121,3 +123,31 @@ void machine_kexec(struct kimage *image)
        unw_init_running(ia64_machine_kexec, image);
        for(;;);
 }
+
+void arch_crash_save_vmcoreinfo(void)
+{
+#ifdef CONFIG_ARCH_DISCONTIGMEM_ENABLE
+       SYMBOL(pgdat_list);
+       LENGTH(pgdat_list, MAX_NUMNODES);
+
+       SYMBOL(node_memblk);
+       LENGTH(node_memblk, NR_NODE_MEMBLKS);
+       SIZE(node_memblk_s);
+       OFFSET(node_memblk_s, start_paddr);
+       OFFSET(node_memblk_s, size);
+#endif
+#ifdef CONFIG_PGTABLE_3
+       CONFIG(PGTABLE_3);
+#elif  CONFIG_PGTABLE_4
+       CONFIG(PGTABLE_4);
+#endif
+}
+
+unsigned long paddr_vmcoreinfo_note(void)
+{
+       unsigned long vaddr, paddr;
+       vaddr = (unsigned long)(char *)&vmcoreinfo_note;
+       asm volatile ("tpa %0 = %1" : "=r"(paddr) : "r"(vaddr) : "memory");
+       return paddr;
+}
+