diff --git a/mm/compaction.c b/mm/compaction.c
index 9febc8cc84e727d74470dbccb9cf02acff0a6c4a..9e1b9acb116b9b3efaabd8ee02538c20456b4714 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1399,7 +1399,7 @@ fast_isolate_freepages(struct compact_control *cc)
 				page = pfn_to_page(highest);
 				cc->free_pfn = highest;
 			} else {
-				if (cc->direct_compaction) {
+				if (cc->direct_compaction && pfn_valid(min_pfn)) {
 					page = pfn_to_page(min_pfn);
 					cc->free_pfn = min_pfn;
 				}