From 76c1b0577043a299040e17ee31b87d1049d74536 Mon Sep 17 00:00:00 2001 From: Horms Date: Tue, 12 Dec 2006 18:08:10 +0900 Subject: [PATCH] --- yaml --- r: 44410 b: refs/heads/master c: ad1c3ba7e54fc38b119c1a7d5c98f9ffb8227fdb h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/ia64/kernel/setup.c | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index fcadf50c1bf7..54c9c6977b17 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 45a98fc622ae700eed34eb2be00743910d50dbe1 +refs/heads/master: ad1c3ba7e54fc38b119c1a7d5c98f9ffb8227fdb diff --git a/trunk/arch/ia64/kernel/setup.c b/trunk/arch/ia64/kernel/setup.c index 66377baea6a5..be398451d45c 100644 --- a/trunk/arch/ia64/kernel/setup.c +++ b/trunk/arch/ia64/kernel/setup.c @@ -256,7 +256,7 @@ reserve_memory (void) #ifdef CONFIG_KEXEC /* crashkernel=size@offset specifies the size to reserve for a crash - * kernel.(offset is ingored for keep compatibility with other archs) + * kernel. If offset is 0, then it is determined automatically. * By reserving this memory we guarantee that linux never set's it * up as a DMA target.Useful for holding code to do something * appropriate after a kernel panic. @@ -266,10 +266,16 @@ reserve_memory (void) unsigned long base, size; if (from) { size = memparse(from + 12, &from); + if (*from == '@') + base = memparse(from+1, &from); + else + base = 0; if (size) { - sort_regions(rsvd_region, n); - base = kdump_find_rsvd_region(size, - rsvd_region, n); + if (!base) { + sort_regions(rsvd_region, n); + base = kdump_find_rsvd_region(size, + rsvd_region, n); + } if (base != ~0UL) { rsvd_region[n].start = (unsigned long)__va(base);