diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 235c001b7fe5..34b113b93716 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1516,6 +1516,7 @@ static inline void expand(struct zone *zone, struct page *page, int low, int high, int migratetype) { unsigned long size = 1 << high; + unsigned long nr_added = 0; while (high > low) { high--; @@ -1533,7 +1534,9 @@ static inline void expand(struct zone *zone, struct page *page, __add_to_free_list(&page[size], zone, high, migratetype, false); set_buddy_order(&page[size], high); + nr_added += size; } + account_freepages(zone, nr_added, migratetype); } static void check_new_page_bad(struct page *page)