aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2005-08-09 01:20:19 -0400
committerPaul Mackerras <paulus@samba.org>2005-08-28 20:53:38 -0400
commit95920324f51b3a12603cf6d9bacbd831f34c5b60 (patch)
treef74faa0172cc88148e00b1484fd97fa90d2d9d23 /arch
parent145ec7d51ae507c7cc8889ad05e24af05bbd9147 (diff)
[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>
Diffstat (limited to 'arch')
-rw-r--r--arch/ppc64/kernel/prom.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/ppc64/kernel/prom.c b/arch/ppc64/kernel/prom.c
index 04b852d446a3..b21848826791 100644
--- a/arch/ppc64/kernel/prom.c
+++ b/arch/ppc64/kernel/prom.c
@@ -950,8 +950,13 @@ void __init unflatten_device_tree(void)
950 DBG(" size is %lx, allocating...\n", size); 950 DBG(" size is %lx, allocating...\n", size);
951 951
952 /* Allocate memory for the expanded device tree */ 952 /* Allocate memory for the expanded device tree */
953 mem = (unsigned long)abs_to_virt(lmb_alloc(size + 4, 953 mem = lmb_alloc(size + 4, __alignof__(struct device_node));
954 __alignof__(struct device_node))); 954 if (!mem) {
955 DBG("Couldn't allocate memory with lmb_alloc()!\n");
956 panic("Couldn't allocate memory with lmb_alloc()!\n");
957 }
958 mem = (unsigned long)abs_to_virt(mem);
959
955 ((u32 *)mem)[size / 4] = 0xdeadbeef; 960 ((u32 *)mem)[size / 4] = 0xdeadbeef;
956 961
957 DBG(" unflattening...\n", mem); 962 DBG(" unflattening...\n", mem);