[PATCH] kexec/x86: fix crashkernel reserved mem detection

Baoquan He bhe at redhat.com
Fri Jan 9 00:59:27 PST 2015


On 01/08/15 at 10:27pm, Tony Jones wrote:
> On 12/25/2014 05:38 AM, Yuri Volchkov wrote:
> > Function crashkernel_mem_callback had wrong parameters type
> > So crash_reserved_mem got completely insane values
> > As a result kexec was unable to allocate segments for crashkernel
> > For instance, I got this message:
> > 	"Could not find a free area of memory of 0x9f000 bytes..."
> > 
> > Signed-off-by: Yuri Volchkov <wolchkov.yuri at gmail.com>
> 
> See the patch attached to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771671
> which also fixes kexec/arch/sh/crashdump-sh.c and kexec/arch/sh/kexec-sh.c
> 
> Definitely a problem.  Without the x86 fix we seem same failure on i586

Hi Tony,

commit 4362bfa make that change, but skip the crashkernel_mem_callback.
It need be fixed.

I am wondering how the insane values happened on i386, and it didn't
happen on x86_64.

Thanks
Baoquan

> 
> tony
> 
> > ---
> >  kexec/arch/i386/crashdump-x86.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c
> > index 77bdad5..82bf239 100644
> > --- a/kexec/arch/i386/crashdump-x86.c
> > +++ b/kexec/arch/i386/crashdump-x86.c
> > @@ -1041,8 +1041,8 @@ int get_max_crash_kernel_limit(uint64_t *start, uint64_t *end)
> >  
> >  static int crashkernel_mem_callback(void *UNUSED(data), int nr,
> >                                            char *UNUSED(str),
> > -                                          unsigned long base,
> > -                                          unsigned long length)
> > +                                          unsigned long long base,
> > +                                          unsigned long long length)
> >  {
> >  	if (nr >= CRASH_RESERVED_MEM_NR)
> >  		return 1;
> > 
> 
> 
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec



More information about the kexec mailing list