Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[sfrench/cifs-2.6.git] / arch / powerpc / kernel / machine_kexec.c
index 5df777794403d49a3820add9ba6409701b295da4..fa9f6c72f557026aaf2a4c7c7e763fb45cb7805d 100644 (file)
@@ -165,7 +165,7 @@ void __init reserve_crashkernel(void)
        if (memory_limit && memory_limit <= crashk_res.end) {
                memory_limit = crashk_res.end + 1;
                printk("Adjusted memory limit for crashkernel, now 0x%llx\n",
-                      (unsigned long long)memory_limit);
+                      memory_limit);
        }
 
        printk(KERN_INFO "Reserving %ldMB of memory at %ldMB "
@@ -204,6 +204,12 @@ static struct property crashk_size_prop = {
        .value = &crashk_size,
 };
 
+static struct property memory_limit_prop = {
+       .name = "linux,memory-limit",
+       .length = sizeof(unsigned long long),
+       .value = &memory_limit,
+};
+
 static void __init export_crashk_values(struct device_node *node)
 {
        struct property *prop;
@@ -223,6 +229,12 @@ static void __init export_crashk_values(struct device_node *node)
                crashk_size = resource_size(&crashk_res);
                prom_add_property(node, &crashk_size_prop);
        }
+
+       /*
+        * memory_limit is required by the kexec-tools to limit the
+        * crash regions to the actual memory used.
+        */
+       prom_update_property(node, &memory_limit_prop);
 }
 
 static int __init kexec_setup(void)