diff --git a/mm/page_alloc.c b/mm/page_alloc.c index ac8fc51825bb9af8a44c12fc70e1b7b1c8bc6460..942498fba942809970a434541d3f071e10477c0e 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -718,7 +718,7 @@ int move_freepages(struct zone *zone, { struct page *page; unsigned long order; - int blocks_moved = 0; + int pages_moved = 0; #ifndef CONFIG_HOLES_IN_ZONE /* @@ -747,10 +747,10 @@ int move_freepages(struct zone *zone, list_add(&page->lru, &zone->free_area[order].free_list[migratetype]); page += 1 << order; - blocks_moved++; + pages_moved += 1 << order; } - return blocks_moved; + return pages_moved; } int move_freepages_block(struct zone *zone, struct page *page, int migratetype) @@ -833,7 +833,7 @@ static struct page *__rmqueue_fallback(struct zone *zone, int order, start_migratetype); /* Claim the whole block if over half of it is free */ - if ((pages << current_order) >= (1 << (MAX_ORDER-2))) + if (pages >= (1 << (MAX_ORDER-2))) set_pageblock_migratetype(page, start_migratetype);