[PATCH] ppc64: unflatten_device_tree() should check if lmb_alloc() fails
authorMichael Ellerman <michael@ellerman.id.au>
Tue, 9 Aug 2005 05:20:19 +0000 (15:20 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 29 Aug 2005 00:53:38 +0000 (10:53 +1000)
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>
arch/ppc64/kernel/prom.c

index 04b852d446a3a1ff14a71f80d72a53dd3e574adf..b21848826791e224a7bf9bd737de5c0feba74ebe 100644 (file)
@@ -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);