[PATCH] x86: Move crashkernel reservation before dma32_reserve_bootmem()

Greg KH gregkh at suse.de
Thu Jul 17 03:30:53 EDT 2008


On Mon, Jul 14, 2008 at 03:37:24PM +0200, Bernhard Walle wrote:
> * Vivek Goyal [2008-07-14 09:30]:
> >
> > On Sun, Jul 13, 2008 at 08:49:44PM +0200, Bernhard Walle wrote:
> > > From: Bernhard Walle <bernhard.walle at gmx.de>
> > > 
> > > On a x86-64 machine (nothing special I could encounter) I had the problem that
> > > crashkernel reservation with the usual "64M at 16M" failed. While debugging that,
> > > I encountered that dma32_reserve_bootmem() reserves a memory region which is in
> > > that area.
> > > 
> > > Because dma32_reserve_bootmem() does not rely on a specific offset but
> > > crashkernel does, it makes sense to move the crashkernel reservation up a bit.
> > > I tested that patch and it works without problems. I don't see any negative
> > > effects of that move, but maybe I oversaw something ...
> > > 
> > > While the long-term solution is to make the crashkernel reservation dynamic
> > > (which is already done in -tip), this bug should be fixed also short-term for
> > > 2.6.26 (or 2.6.26-stable if it's too short), and that's why I made that patch.
> > > 
> > > 
> > > Signed-off-by: Bernhard Walle <bwalle at suse.de>
> > > Signed-off-by: Bernhard Walle <bernhard.walle at gmx.de>
> > > ---
> > >  arch/x86/kernel/setup_64.c |    7 ++++++-
> > >  1 files changed, 6 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
> > > index 6dff128..158cefe 100644
> > > --- a/arch/x86/kernel/setup_64.c
> > > +++ b/arch/x86/kernel/setup_64.c
> > > @@ -444,6 +444,12 @@ void __init setup_arch(char **cmdline_p)
> > >  	contig_initmem_init(0, end_pfn);
> > >  #endif
> > >  
> > > +	/*
> > > +	 * dma32_reserve_bootmem() allocates bootmem which may conflict
> > > +	 * with the crashkernel command line, so do that before
> > > +	 */
> > > +	reserve_crashkernel();
> > > +
> > >  	dma32_reserve_bootmem();
> > >  
> > >  #ifdef CONFIG_ACPI_SLEEP
> > > @@ -484,7 +490,6 @@ void __init setup_arch(char **cmdline_p)
> > >  		}
> > >  	}
> > >  #endif
> > > -	reserve_crashkernel();
> > >  
> > >  	reserve_ibft_region();
> > 
> > Looks good to me. 
> > 
> > Acked-by: Vivek Goyal <vgoyal at redhat.com>
> 
> Greg,
> 
> would that be something for -stable?

If it affects 2.6.25 or 2.6.26, yes, it would be.  Just send it to
stable at kernel.org and we can take it from there as long as it is
accepted already into Linus's tree.

thanks,

greg k-h



More information about the kexec mailing list