On Mon, 21 Jul 2014, Huangpeng (Peter) wrote: > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index 835aa3d..c54284b 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -1199,7 +1199,7 @@ static inline struct mem_section *__pfn_to_section(unsigned long pfn) > #ifndef CONFIG_HAVE_ARCH_PFN_VALID > static inline int pfn_valid(unsigned long pfn) > { > - if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS) > + if (pfn >= max_pfn || pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS) > return 0; > return valid_section(__nr_to_section(pfn_to_section_nr(pfn))); > } Why should valid_section() return non-zero for sparsemem if it is above max_pfn? (I think you're modifying the wrong function.) Your patch is also whitespace damaged and cannot be applied, please see Documentation/SubmittingPatches which also references Documentation/email-clients.txt. > diff --git a/mm/nobootmem.c b/mm/nobootmem.c > index 04a9d94..7eb273e 100644 > --- a/mm/nobootmem.c > +++ b/mm/nobootmem.c > @@ -31,7 +31,7 @@ EXPORT_SYMBOL(contig_page_data); > unsigned long max_low_pfn; > unsigned long min_low_pfn; > unsigned long max_pfn; > - > +EXPORT_SYMBOL(max_pfn); > static void * __init __alloc_memory_core_early(int nid, u64 size, u64 align, > u64 goal, u64 limit) > { This is an unrelated change. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>