Răsfoiți Sursa

[PATCH] ppc64: unflatten_device_tree() should check if lmb_alloc() fails

unflatten_device_tree() doesn't check if lmb_alloc() succeeds or not, it
should. All it can do is panic, but at least there's an error message
(assuming you have some sort of console at that point).

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>

 arch/ppc64/kernel/prom.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
Signed-off-by: Paul Mackerras <paulus@samba.org>
Michael Ellerman 20 ani în urmă
părinte
comite
95920324f5
1 a modificat fișierele cu 7 adăugiri și 2 ștergeri
  1. 7 2
      arch/ppc64/kernel/prom.c

+ 7 - 2
arch/ppc64/kernel/prom.c

@@ -950,8 +950,13 @@ void __init unflatten_device_tree(void)
 	DBG("  size is %lx, allocating...\n", size);
 
 	/* Allocate memory for the expanded device tree */
-	mem = (unsigned long)abs_to_virt(lmb_alloc(size + 4,
-						   __alignof__(struct device_node)));
+	mem = lmb_alloc(size + 4, __alignof__(struct device_node));
+	if (!mem) {
+		DBG("Couldn't allocate memory with lmb_alloc()!\n");
+		panic("Couldn't allocate memory with lmb_alloc()!\n");
+	}
+	mem = (unsigned long)abs_to_virt(mem);
+
 	((u32 *)mem)[size / 4] = 0xdeadbeef;
 
 	DBG("  unflattening...\n", mem);