Forráskód Böngészése

powerpc/kdump: Handle crashkernel memory reservation failure

Memory reservation for crashkernel could fail if there are holes around
kdump kernel offset (128M). Fail gracefully in such cases and print an
error message.

Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
Tested-by: David Gibson <dgibson@redhat.com>
Reviewed-by: Dave Young <dyoung@redhat.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Hari Bathini 7 éve
szülő
commit
8950329c4a
1 módosított fájl, 6 hozzáadás és 1 törlés
  1. 6 1
      arch/powerpc/kernel/machine_kexec.c

+ 6 - 1
arch/powerpc/kernel/machine_kexec.c

@@ -188,7 +188,12 @@ void __init reserve_crashkernel(void)
 			(unsigned long)(crashk_res.start >> 20),
 			(unsigned long)(crashk_res.start >> 20),
 			(unsigned long)(memblock_phys_mem_size() >> 20));
 			(unsigned long)(memblock_phys_mem_size() >> 20));
 
 
-	memblock_reserve(crashk_res.start, crash_size);
+	if (!memblock_is_region_memory(crashk_res.start, crash_size) ||
+	    memblock_reserve(crashk_res.start, crash_size)) {
+		pr_err("Failed to reserve memory for crashkernel!\n");
+		crashk_res.start = crashk_res.end = 0;
+		return;
+	}
 }
 }
 
 
 int overlaps_crashkernel(unsigned long start, unsigned long size)
 int overlaps_crashkernel(unsigned long start, unsigned long size)