|
@@ -668,12 +668,15 @@ static void free_pcppages_bulk(struct zone *zone, int count,
|
|
|
batch_free = to_free;
|
|
|
|
|
|
do {
|
|
|
+ int mt; /* migratetype of the to-be-freed page */
|
|
|
+
|
|
|
page = list_entry(list->prev, struct page, lru);
|
|
|
/* must delete as __free_one_page list manipulates */
|
|
|
list_del(&page->lru);
|
|
|
+ mt = page_private(page);
|
|
|
/* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */
|
|
|
- __free_one_page(page, zone, 0, page_private(page));
|
|
|
- trace_mm_page_pcpu_drain(page, 0, page_private(page));
|
|
|
+ __free_one_page(page, zone, 0, mt);
|
|
|
+ trace_mm_page_pcpu_drain(page, 0, mt);
|
|
|
} while (--to_free && --batch_free && !list_empty(list));
|
|
|
}
|
|
|
__mod_zone_page_state(zone, NR_FREE_PAGES, count);
|