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