[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