When SPARSEMEM is used, there is an indication that pageblock is not allowed to exceed one mem_section. Current code doesn't have this constrain explicitly. This patch adds this to make sure it won't. Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx> --- include/linux/mmzone.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index be126113b499..8f3ce3a0c7d6 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -1084,6 +1084,10 @@ static inline unsigned long early_pfn_to_nid(unsigned long pfn) #error Allocator MAX_ORDER exceeds SECTION_SIZE #endif +#if (pageblock_order + PAGE_SHIFT) > SECTION_SIZE_BITS +#error Allocator pageblock_order exceeds SECTION_SIZE +#endif + static inline unsigned long pfn_to_section_nr(unsigned long pfn) { return pfn >> PFN_SECTION_SHIFT; -- 2.15.1