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 <lijiang@xxxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/kexec Thanks Dave _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec