* 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? Bernhard -- Bernhard Walle, SUSE LINUX Products GmbH, Architecture Development