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

Tony Jones tonyj at suse.de
Thu Jan 8 22:27:03 PST 2015


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

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;
> 




More information about the kexec mailing list