]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
reserve memory for elfcorehdr
authorDave Kleikamp <dave.kleikamp@oracle.com>
Thu, 11 Sep 2014 16:15:22 +0000 (09:15 -0700)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Mon, 18 Apr 2016 16:42:50 +0000 (11:42 -0500)
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
arch/sparc/mm/init_64.c

index 834bbe981e0cb0c39b473da3ca6a25b8734e29b0..97900c2c3fd92373d32c56e0a5582d0647c80830 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/mmzone.h>
 #include <linux/gfp.h>
 #include <linux/kexec.h>
+#include <linux/crash_dump.h>
 
 #include <asm/head.h>
 #include <asm/page.h>
@@ -285,6 +286,21 @@ static void __init move_shim_initrd(void) {}
 static void kexec_unmap_shim(void) {}
 #endif /* CONFIG_KEXEC */
 
+#ifdef CONFIG_CRASH_DUMP
+static void __init sparc64_reserve_elfcorehdr(void)
+{
+       unsigned long elfcorehdr_size;
+
+       if (is_kdump_kernel()) {
+               elfcorehdr_size = sparc_crash_base + sparc_crash_size -
+                                 elfcorehdr_addr;
+               memblock_reserve(elfcorehdr_addr, elfcorehdr_size);
+       }
+}
+#else
+static void __init sparc64_reserve_elfcorehdr(void) {}
+#endif /* CONFIG_CRASH_DUMP */
+
 #ifdef CONFIG_DEBUG_DCFLUSH
 atomic_t dcpage_flushes = ATOMIC_INIT(0);
 #ifdef CONFIG_SMP
@@ -2344,6 +2360,7 @@ void __init paging_init(void)
                memblock_add(sparc_crash_base, sparc_crash_size);
 
        memblock_reserve(kern_base, kern_size);
+       sparc64_reserve_elfcorehdr();
 
        find_ramdisk(phys_base);