sh: add dynamic crash base address support

Add support for dynamic crash kernel base address.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
Magnus Damm 2008-10-09 18:42:55 +09:00 committed by Paul Mundt
parent a30c89ad41
commit 4aeaa22343

View file

@ -147,6 +147,7 @@ static void __init reserve_crashkernel(void)
{ {
unsigned long long free_mem; unsigned long long free_mem;
unsigned long long crash_size, crash_base; unsigned long long crash_size, crash_base;
void *vp;
int ret; int ret;
free_mem = ((unsigned long long)max_low_pfn - min_low_pfn) << PAGE_SHIFT; free_mem = ((unsigned long long)max_low_pfn - min_low_pfn) << PAGE_SHIFT;
@ -155,12 +156,14 @@ static void __init reserve_crashkernel(void)
&crash_size, &crash_base); &crash_size, &crash_base);
if (ret == 0 && crash_size) { if (ret == 0 && crash_size) {
if (crash_base <= 0) { if (crash_base <= 0) {
printk(KERN_INFO "crashkernel reservation failed - " vp = alloc_bootmem_nopanic(crash_size);
"you have to specify a base address\n"); if (!vp) {
return; printk(KERN_INFO "crashkernel allocation "
} "failed\n");
return;
if (reserve_bootmem(crash_base, crash_size, }
crash_base = __pa(vp);
} else if (reserve_bootmem(crash_base, crash_size,
BOOTMEM_EXCLUSIVE) < 0) { BOOTMEM_EXCLUSIVE) < 0) {
printk(KERN_INFO "crashkernel reservation failed - " printk(KERN_INFO "crashkernel reservation failed - "
"memory is in use\n"); "memory is in use\n");