]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - arch/powerpc/kernel/fadump.c
powerpc/fadump: reuse crashkernel parameter for fadump memory reservation
[linux.git] / arch / powerpc / kernel / fadump.c
index d2e1476d98709e0d85b48ef8234092b4fb5c7583..466569e26278694c8ceea17509a99ec04c4ea68b 100644 (file)
@@ -209,14 +209,20 @@ static unsigned long init_fadump_mem_struct(struct fadump_mem_struct *fdm,
  */
 static inline unsigned long fadump_calculate_reserve_size(void)
 {
-       unsigned long size;
+       int ret;
+       unsigned long long base, size;
 
        /*
-        * Check if the size is specified through fadump_reserve_mem= cmdline
-        * option. If yes, then use that.
+        * Check if the size is specified through crashkernel= cmdline
+        * option. If yes, then use that but ignore base as fadump
+        * reserves memory at end of RAM.
         */
-       if (fw_dump.reserve_bootvar)
+       ret = parse_crashkernel(boot_command_line, memblock_phys_mem_size(),
+                               &size, &base);
+       if (ret == 0 && size > 0) {
+               fw_dump.reserve_bootvar = (unsigned long)size;
                return fw_dump.reserve_bootvar;
+       }
 
        /* divide by 20 to get 5% of value */
        size = memblock_end_of_DRAM() / 20;
@@ -371,15 +377,6 @@ static int __init early_fadump_param(char *p)
 }
 early_param("fadump", early_fadump_param);
 
-/* Look for fadump_reserve_mem= cmdline option */
-static int __init early_fadump_reserve_mem(char *p)
-{
-       if (p)
-               fw_dump.reserve_bootvar = memparse(p, &p);
-       return 0;
-}
-early_param("fadump_reserve_mem", early_fadump_reserve_mem);
-
 static void register_fw_dump(struct fadump_mem_struct *fdm)
 {
        int rc;