diff --git a/mm/page_alloc.c b/mm/page_alloc.c index a873e61e312e6dd7795b4b734a0370bc844d9f29..cdef1d4b4e4741d7ac47c938ef531bd9dd2dd9cc 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5376,10 +5376,9 @@ __count_immobile_pages(struct zone *zone, struct page *page, int count) for (found = 0, iter = 0; iter < pageblock_nr_pages; iter++) { unsigned long check = pfn + iter; - if (!pfn_valid_within(check)) { - iter++; + if (!pfn_valid_within(check)) continue; - } + page = pfn_to_page(check); if (!page_count(page)) { if (PageBuddy(page))