diff --git a/mm/compaction.c b/mm/compaction.c index 0e0ef9e44530..1f89b969c12b 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -1848,6 +1848,8 @@ static unsigned long fast_find_migrateblock(struct compact_control *cc) update_fast_start_pfn(cc, free_pfn); pfn = pageblock_start_pfn(free_pfn); + if (pfn < cc->zone->zone_start_pfn) + pfn = cc->zone->zone_start_pfn; cc->fast_search_fail = 0; found_block = true; set_pageblock_skip(freepage);