diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-07-16 13:11:29 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-16 13:11:29 +0200 |
commit | 77e442461c74068217b59b356cf18992c78ed896 (patch) | |
tree | 70f62a16bc6a81b63768279c9b40645d8f4dd4ff /arch/powerpc/boot/oflib.c | |
parent | d54191b85e294c46f05a2249b1f55ae54930bcc7 (diff) | |
parent | 45158894d4d6704afbb4cefe55e5f6ca279fe12a (diff) |
Merge branch 'linus' into x86/kprobes
Diffstat (limited to 'arch/powerpc/boot/oflib.c')
-rw-r--r-- | arch/powerpc/boot/oflib.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/powerpc/boot/oflib.c b/arch/powerpc/boot/oflib.c index 95b8fd69a40..b0ec9cf3eaa 100644 --- a/arch/powerpc/boot/oflib.c +++ b/arch/powerpc/boot/oflib.c @@ -168,8 +168,19 @@ void *of_claim(unsigned long virt, unsigned long size, unsigned long align) void *of_vmlinux_alloc(unsigned long size) { - void *p = malloc(size); - + unsigned long start = (unsigned long)_start, end = (unsigned long)_end; + void *addr; + void *p; + + /* With some older POWER4 firmware we need to claim the area the kernel + * will reside in. Newer firmwares don't need this so we just ignore + * the return value. + */ + addr = of_claim(start, end - start, 0); + printf("Trying to claim from 0x%lx to 0x%lx (0x%lx) got %p\r\n", + start, end, end - start, addr); + + p = malloc(size); if (!p) fatal("Can't allocate memory for kernel image!\n\r"); |