summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@gmail.com>2011-02-25 14:44:25 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-03-07 15:05:11 -0800
commit7c457763a53170ed4815f861b7c6a758f9cb0ed3 (patch)
treef7dc87dd29b13f37dd05e7b89ad8229e099dcd1d /mm
parente03abd0eb5bb2864923626abc9ebc78c2372c3ee (diff)
mm: fix dubious code in __count_immobile_pages()
commit 29723fccc837d20039078f7a571e8d457eb0d6c6 upstream. When pfn_valid_within() failed 'iter' was incremented twice. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Reviewed-by: Minchan Kim <minchan.kim@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'mm')
-rw-r--r--mm/page_alloc.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 91b6d8c90d8e..92e89a0f06c4 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5335,10 +5335,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))