Hi Lianbo,

On 09/05/18 at 09:41pm, Lianbo Jiang wrote:
> When kexec-tools load the kernel and initramfs for kdump, kexec-tools will
> read /proc/iomem and recreate the e820 ranges for kdump kernel. But it fails
> to parse the e820 reserved region, because the memcmp() is case sensitive
> when comparing the string. In fact, it may be "Reserved" or "reserved" in
> the /proc/iomem, so we use the strncasecmp() instead of the memcmp() to fix
> it.
> 
> Signed-off-by: Lianbo Jiang <liji...@redhat.com>
> ---
>  kexec/arch/i386/crashdump-x86.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c
> index 437e8a8..6669c1a 100644
> --- a/kexec/arch/i386/crashdump-x86.c
> +++ b/kexec/arch/i386/crashdump-x86.c
> @@ -287,7 +287,7 @@ static int get_crash_memory_ranges(struct memory_range 
> **range, int *ranges,
>                       type = RANGE_PRAM;
>               } else if(memcmp(str,"Persistent Memory\n",18) == 0 ) {
>                       type = RANGE_PMEM;
> -             } else if(memcmp(str,"reserved\n",9) == 0 ) {
> +             } else if(strncasecmp(str,"reserved\n",9) == 0 ) {
>                       type = RANGE_RESERVED;

It would be better to use two memcmp in two "else if" for "reserved" and 
"Reserved"

BTW, add one whitespace before the function arguments. 

>               } else if (memcmp(str, "GART\n", 5) == 0) {
>                       gart_start = start;
> -- 
> 2.17.1
> 
> 
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec

Thanks
Dave

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to