diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/page_alloc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index cefd14e6dcf2..3f18a14effb8 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -668,12 +668,15 @@ static void free_pcppages_bulk(struct zone *zone, int count, | |||
668 | batch_free = to_free; | 668 | batch_free = to_free; |
669 | 669 | ||
670 | do { | 670 | do { |
671 | int mt; /* migratetype of the to-be-freed page */ | ||
672 | |||
671 | page = list_entry(list->prev, struct page, lru); | 673 | page = list_entry(list->prev, struct page, lru); |
672 | /* must delete as __free_one_page list manipulates */ | 674 | /* must delete as __free_one_page list manipulates */ |
673 | list_del(&page->lru); | 675 | list_del(&page->lru); |
676 | mt = page_private(page); | ||
674 | /* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */ | 677 | /* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */ |
675 | __free_one_page(page, zone, 0, page_private(page)); | 678 | __free_one_page(page, zone, 0, mt); |
676 | trace_mm_page_pcpu_drain(page, 0, page_private(page)); | 679 | trace_mm_page_pcpu_drain(page, 0, mt); |
677 | } while (--to_free && --batch_free && !list_empty(list)); | 680 | } while (--to_free && --batch_free && !list_empty(list)); |
678 | } | 681 | } |
679 | __mod_zone_page_state(zone, NR_FREE_PAGES, count); | 682 | __mod_zone_page_state(zone, NR_FREE_PAGES, count); |