From: Namhyung Kim <[email protected]> When pfn_valid_within() failed 'iter' was incremented twice.
Signed-off-by: Namhyung Kim <[email protected]> Reviewed-by: KAMEZAWA Hiroyuki <[email protected]> Reviewed-by: Minchan Kim <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]> --- mm/page_alloc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff -puN mm/page_alloc.c~mm-fix-dubious-code-in-__count_immobile_pages mm/page_alloc.c --- a/mm/page_alloc.c~mm-fix-dubious-code-in-__count_immobile_pages +++ a/mm/page_alloc.c @@ -5376,10 +5376,9 @@ __count_immobile_pages(struct zone *zone 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)) _ _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
