* [patch 5/7] Use extended crashkernel command line on ppc64 [not found] <20070925182257.900701776@strauss.suse.de> @ 2007-09-25 18:23 ` Bernhard Walle 2007-09-25 19:45 ` Andrew Morton 0 siblings, 1 reply; 5+ messages in thread From: Bernhard Walle @ 2007-09-25 18:23 UTC (permalink / raw) To: kexec, akpm; +Cc: linux-arch, linuxppc-dev, linux-kernel This patch adapts the ppc64 code to use the generic parse_crashkernel() function introduced in the generic patch of that series. Signed-off-by: Bernhard Walle <bwalle@suse.de> --- arch/powerpc/kernel/machine_kexec.c | 52 ++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 26 deletions(-) --- a/arch/powerpc/kernel/machine_kexec.c +++ b/arch/powerpc/kernel/machine_kexec.c @@ -61,45 +61,39 @@ NORET_TYPE void machine_kexec(struct kim for(;;); } -static int __init early_parse_crashk(char *p) +void __init reserve_crashkernel(void) { - unsigned long size; - - if (!p) - return 1; - - size = memparse(p, &p); + unsigned long long crash_size, crash_base; + int ret; - if (*p == '@') - crashk_res.start = memparse(p + 1, &p); - else - crashk_res.start = KDUMP_KERNELBASE; - - crashk_res.end = crashk_res.start + size - 1; - - return 0; -} -early_param("crashkernel", early_parse_crashk); + /* this is necessary because of lmb_phys_mem_size() */ + lmb_analyze(); -void __init reserve_crashkernel(void) -{ - unsigned long size; + /* use common parsing */ + ret = parse_crashkernel(boot_command_line, lmb_phys_mem_size(), + &crash_size, &crash_base); + if (ret == 0 && crash_size > 0) { + if (crash_base == 0) + crash_base = KDUMP_KERNELBASE; + crashk_res.start = crash_base; + } else { + /* handle the device tree */ + crash_size = crashk_res.end - crashk_res.start + 1; + } - if (crashk_res.start == 0) + if (crash_size == 0) return; /* We might have got these values via the command line or the * device tree, either way sanitise them now. */ - size = crashk_res.end - crashk_res.start + 1; - if (crashk_res.start != KDUMP_KERNELBASE) printk("Crash kernel location must be 0x%x\n", KDUMP_KERNELBASE); crashk_res.start = KDUMP_KERNELBASE; - size = PAGE_ALIGN(size); - crashk_res.end = crashk_res.start + size - 1; + crash_size = PAGE_ALIGN(crash_size); + crashk_res.end = crashk_res.start + crash_size - 1; /* Crash kernel trumps memory limit */ if (memory_limit && memory_limit <= crashk_res.end) { @@ -108,7 +102,13 @@ void __init reserve_crashkernel(void) memory_limit); } - lmb_reserve(crashk_res.start, size); + printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " + "for crashkernel (System RAM: %ldMB)\n", + (unsigned long)(crash_size >> 20), + (unsigned long)(crashk_res.start >> 20), + (unsigned long)(lmb_phys_mem_size() >> 20)); + + lmb_reserve(crashk_res.start, crash_size); } int overlaps_crashkernel(unsigned long start, unsigned long size) -- ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch 5/7] Use extended crashkernel command line on ppc64 2007-09-25 18:23 ` [patch 5/7] Use extended crashkernel command line on ppc64 Bernhard Walle @ 2007-09-25 19:45 ` Andrew Morton 2007-09-26 8:15 ` Bernhard Walle 0 siblings, 1 reply; 5+ messages in thread From: Andrew Morton @ 2007-09-25 19:45 UTC (permalink / raw) To: Bernhard Walle; +Cc: linux-arch, linuxppc-dev, kexec, linux-kernel On Tue, 25 Sep 2007 20:23:02 +0200 Bernhard Walle <bwalle@suse.de> wrote: > This patch adapts the ppc64 code to use the generic parse_crashkernel() > function introduced in the generic patch of that series. > > I really don't like to see patches get a wholesale replacement, especially when they've been looked at by a few people and have had some testing, etc. It's not possible to see what changed and people need to re-review stuff they've already reviewed, etc. So I almost always undo this mess, turn the patches back into incremental ones, see what pops out. This patch is actually: diff -puN arch/powerpc/kernel/machine_kexec.c~use-extended-crashkernel-command-line-on-ppc64-update arch/powerpc/kernel/machine_kexec.c --- a/arch/powerpc/kernel/machine_kexec.c~use-extended-crashkernel-command-line-on-ppc64-update +++ a/arch/powerpc/kernel/machine_kexec.c @@ -63,7 +63,7 @@ NORET_TYPE void machine_kexec(struct kim void __init reserve_crashkernel(void) { - unsigned long long crash_size = 0, crash_base; + unsigned long long crash_size, crash_base; int ret; /* this is necessary because of lmb_phys_mem_size() */ _ which I suspect will now create a compiler warning. unsigned long long crash_size, crash_base; int ret; /* this is necessary because of lmb_phys_mem_size() */ lmb_analyze(); /* use common parsing */ ret = parse_crashkernel(boot_command_line, lmb_phys_mem_size(), &crash_size, &crash_base); if (ret == 0 && crash_size > 0) { if (crash_base == 0) crash_base = KDUMP_KERNELBASE; crashk_res.start = crash_base; } else { /* handle the device tree */ crash_size = crashk_res.end - crashk_res.start + 1; } if (crash_size == 0) return; If so, the use of uninitialized_var() would be better than the unneeded initialization-to-zero. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch 5/7] Use extended crashkernel command line on ppc64 2007-09-25 19:45 ` Andrew Morton @ 2007-09-26 8:15 ` Bernhard Walle 0 siblings, 0 replies; 5+ messages in thread From: Bernhard Walle @ 2007-09-26 8:15 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-arch, linuxppc-dev, kexec, linux-kernel Hi, * Andrew Morton <akpm@linux-foundation.org> [2007-09-25 21:45]: > On Tue, 25 Sep 2007 20:23:02 +0200 Bernhard Walle <bwalle@suse.de> wrote: > > > This patch adapts the ppc64 code to use the generic parse_crashkernel() > > function introduced in the generic patch of that series. > > I really don't like to see patches get a wholesale replacement, especially > when they've been looked at by a few people and have had some testing, etc. > It's not possible to see what changed and people need to re-review stuff > they've already reviewed, etc. Sorry, I didn't know that this is the preferred way. I just thought it's more clear if the patches are replaced if the patch set is finally pushed into Linus' tree. > diff -puN arch/powerpc/kernel/machine_kexec.c~use-extended-crashkernel-command-line-on-ppc64-update arch/powerpc/kernel/machine_kexec.c > --- a/arch/powerpc/kernel/machine_kexec.c~use-extended-crashkernel-command-line-on-ppc64-update > +++ a/arch/powerpc/kernel/machine_kexec.c > @@ -63,7 +63,7 @@ NORET_TYPE void machine_kexec(struct kim > > void __init reserve_crashkernel(void) > { > - unsigned long long crash_size = 0, crash_base; > + unsigned long long crash_size, crash_base; > int ret; > > /* this is necessary because of lmb_phys_mem_size() */ > _ > > > which I suspect will now create a compiler warning. No, it doesn't. I just verified this. CHK include/linux/compile.h CC arch/powerpc/kernel/machine_kexec.o LD arch/powerpc/kernel/built-in.o Thanks, Bernhard -- Bernhard Walle <bwalle@suse.de>, Architecture Maintenance SUSE LINUX Products GmbH, Nürnberg, Germany GF: Markus Rex, HRB 16746 (AG Nürnberg) OpenPGP: F61F 34CC 09CA FB82 C9F6 BA4B 8865 3696 DDAF 6454 ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20070920171845.774383000@stravinsky.suse.de>]
* [patch 5/7] Use extended crashkernel command line on ppc64 [not found] <20070920171845.774383000@stravinsky.suse.de> @ 2007-09-20 17:18 ` Bernhard Walle 0 siblings, 0 replies; 5+ messages in thread From: Bernhard Walle @ 2007-09-20 17:18 UTC (permalink / raw) To: kexec, akpm; +Cc: linux-arch, linuxppc-dev, linux-kernel This patch adapts the ppc64 code to use the generic parse_crashkernel() function introduced in the generic patch of that series. Signed-off-by: Bernhard Walle <bwalle@suse.de> --- arch/powerpc/kernel/machine_kexec.c | 52 ++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 26 deletions(-) --- a/arch/powerpc/kernel/machine_kexec.c +++ b/arch/powerpc/kernel/machine_kexec.c @@ -61,45 +61,39 @@ NORET_TYPE void machine_kexec(struct kim for(;;); } -static int __init early_parse_crashk(char *p) +void __init reserve_crashkernel(void) { - unsigned long size; - - if (!p) - return 1; - - size = memparse(p, &p); + unsigned long long crash_size = 0, crash_base; + int ret; - if (*p == '@') - crashk_res.start = memparse(p + 1, &p); - else - crashk_res.start = KDUMP_KERNELBASE; - - crashk_res.end = crashk_res.start + size - 1; - - return 0; -} -early_param("crashkernel", early_parse_crashk); + /* this is necessary because of lmb_phys_mem_size() */ + lmb_analyze(); -void __init reserve_crashkernel(void) -{ - unsigned long size; + /* use common parsing */ + ret = parse_crashkernel(boot_command_line, lmb_phys_mem_size(), + &crash_size, &crash_base); + if (ret == 0 && crash_size > 0) { + if (crash_base == 0) + crash_base = KDUMP_KERNELBASE; + crashk_res.start = crash_base; + } else { + /* handle the device tree */ + crash_size = crashk_res.end - crashk_res.start + 1; + } - if (crashk_res.start == 0) + if (crash_size == 0) return; /* We might have got these values via the command line or the * device tree, either way sanitise them now. */ - size = crashk_res.end - crashk_res.start + 1; - if (crashk_res.start != KDUMP_KERNELBASE) printk("Crash kernel location must be 0x%x\n", KDUMP_KERNELBASE); crashk_res.start = KDUMP_KERNELBASE; - size = PAGE_ALIGN(size); - crashk_res.end = crashk_res.start + size - 1; + crash_size = PAGE_ALIGN(crash_size); + crashk_res.end = crashk_res.start + crash_size - 1; /* Crash kernel trumps memory limit */ if (memory_limit && memory_limit <= crashk_res.end) { @@ -108,7 +102,13 @@ void __init reserve_crashkernel(void) memory_limit); } - lmb_reserve(crashk_res.start, size); + printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " + "for crashkernel (System RAM: %ldMB)\n", + (unsigned long)(crash_size >> 20), + (unsigned long)(crashk_res.start >> 20), + (unsigned long)(lmb_phys_mem_size() >> 20)); + + lmb_reserve(crashk_res.start, crash_size); } int overlaps_crashkernel(unsigned long start, unsigned long size) -- ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20070913161428.343951643@strauss.suse.de>]
* [patch 5/7] Use extended crashkernel command line on ppc64 [not found] <20070913161428.343951643@strauss.suse.de> @ 2007-09-13 16:14 ` Bernhard Walle 0 siblings, 0 replies; 5+ messages in thread From: Bernhard Walle @ 2007-09-13 16:14 UTC (permalink / raw) To: kexec; +Cc: linux-arch, linuxppc-dev, linux-kernel This patch adapts the ppc64 code to use the generic parse_crashkernel() function introduced in the generic patch of that series. Signed-off-by: Bernhard Walle <bwalle@suse.de> --- arch/powerpc/kernel/machine_kexec.c | 52 ++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 26 deletions(-) --- a/arch/powerpc/kernel/machine_kexec.c +++ b/arch/powerpc/kernel/machine_kexec.c @@ -61,45 +61,39 @@ NORET_TYPE void machine_kexec(struct kim for(;;); } -static int __init early_parse_crashk(char *p) +void __init reserve_crashkernel(void) { - unsigned long size; - - if (!p) - return 1; - - size = memparse(p, &p); + unsigned long long crash_size = 0, crash_base; + int ret; - if (*p == '@') - crashk_res.start = memparse(p + 1, &p); - else - crashk_res.start = KDUMP_KERNELBASE; - - crashk_res.end = crashk_res.start + size - 1; - - return 0; -} -early_param("crashkernel", early_parse_crashk); + /* this is necessary because of lmb_phys_mem_size() */ + lmb_analyze(); -void __init reserve_crashkernel(void) -{ - unsigned long size; + /* use common parsing */ + ret = parse_crashkernel(boot_command_line, lmb_phys_mem_size(), + &crash_size, &crash_base); + if (ret == 0 && crash_size > 0) { + if (crash_base == 0) + crash_base = KDUMP_KERNELBASE; + crashk_res.start = crash_base; + } else { + /* handle the device tree */ + crash_size = crashk_res.end - crashk_res.start + 1; + } - if (crashk_res.start == 0) + if (crash_size == 0) return; /* We might have got these values via the command line or the * device tree, either way sanitise them now. */ - size = crashk_res.end - crashk_res.start + 1; - if (crashk_res.start != KDUMP_KERNELBASE) printk("Crash kernel location must be 0x%x\n", KDUMP_KERNELBASE); crashk_res.start = KDUMP_KERNELBASE; - size = PAGE_ALIGN(size); - crashk_res.end = crashk_res.start + size - 1; + crash_size = PAGE_ALIGN(crash_size); + crashk_res.end = crashk_res.start + crash_size - 1; /* Crash kernel trumps memory limit */ if (memory_limit && memory_limit <= crashk_res.end) { @@ -108,7 +102,13 @@ void __init reserve_crashkernel(void) memory_limit); } - lmb_reserve(crashk_res.start, size); + printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " + "for crashkernel (System RAM: %ldMB)\n", + (unsigned long)(crash_size >> 20), + (unsigned long)(crashk_res.start >> 20), + (unsigned long)(lmb_phys_mem_size() >> 20)); + + lmb_reserve(crashk_res.start, crash_size); } int overlaps_crashkernel(unsigned long start, unsigned long size) -- ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-09-26 8:15 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20070925182257.900701776@strauss.suse.de> 2007-09-25 18:23 ` [patch 5/7] Use extended crashkernel command line on ppc64 Bernhard Walle 2007-09-25 19:45 ` Andrew Morton 2007-09-26 8:15 ` Bernhard Walle [not found] <20070920171845.774383000@stravinsky.suse.de> 2007-09-20 17:18 ` Bernhard Walle [not found] <20070913161428.343951643@strauss.suse.de> 2007-09-13 16:14 ` Bernhard Walle
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).