On 9/9/07, Bernhard Walle <bwalle at suse.de> wrote: > This patch removes the crashkernel parsing from > arch/x86_64/kernel/machine_kexec.c and calls the generic function, introduced in > the last patch, in setup_bootmem_allocator(). > > This is necessary because the amount of System RAM must be known in this > function now because of the new syntax. > > > Signed-off-by: Bernhard Walle <bwalle at suse.de> > > > --- > arch/x86_64/kernel/e820.c | 3 ++- > arch/x86_64/kernel/machine_kexec.c | 27 --------------------------- > arch/x86_64/kernel/setup.c | 35 ++++++++++++++++++++++++++++------- > 3 files changed, 30 insertions(+), 35 deletions(-) > > --- a/arch/x86_64/kernel/e820.c > +++ b/arch/x86_64/kernel/e820.c > @@ -226,7 +226,8 @@ void __init e820_reserve_resources(void) > request_resource(res, &code_resource); > request_resource(res, &data_resource); > #ifdef CONFIG_KEXEC ... > --- a/arch/x86_64/kernel/machine_kexec.c > +++ b/arch/x86_64/kernel/machine_kexec.c > @@ -231,33 +231,6 @@ NORET_TYPE void machine_kexec(struct kim > image->start); > } > > -/* crashkernel=size at addr specifies the location to reserve for > - * a crash kernel. 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. > - */ > -static int __init setup_crashkernel(char *arg) > -{ > - unsigned long size, base; > - char *p; > - if (!arg) > - return -EINVAL; > - size = memparse(arg, &p); > - if (arg == p) > - return -EINVAL; > - if (*p == '@') { > - base = memparse(p+1, &p); > - /* FIXME: Do I want a sanity check to validate the > - * memory range? Yes you do, but it's too early for > - * e820 -AK */ > - crashk_res.start = base; > - crashk_res.end = base + size - 1; > - } > - return 0; > -} > -early_param("crashkernel", setup_crashkernel); > - > void arch_crash_save_vmcoreinfo(void) > { > #ifdef CONFIG_ARCH_DISCONTIGMEM_ENABLE > --- a/arch/x86_64/kernel/setup.c > +++ b/arch/x86_64/kernel/setup.c > @@ -196,6 +196,33 @@ static inline void copy_edd(void) > } > #endif > > +#ifdef CONFIG_KEXEC ... CONFIG_KEXEC or CONFIG_CRASH_DUMP? YH