diff --git a/mm/compaction.c b/mm/compaction.c index 67d54f17128a90df47be54234a78c149a7a90bf9..80116210c2e64ec2db3d95c87eabbb052dae072e 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -1787,6 +1787,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);