diff --git a/mm/page_alloc.c b/mm/page_alloc.c index f14e2ac21787..6f0ae24bc9c9 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -971,10 +971,12 @@ static inline void __free_one_page(struct page *page, * Our buddy is free or it is CONFIG_DEBUG_PAGEALLOC guard page, * merge with it and move up one order. */ - if (page_is_guard(buddy)) + if (page_is_guard(buddy)) { clear_page_guard(zone, buddy, order); - else + account_freepages(zone, 1 << order, migratetype); + } else { __del_page_from_free_list(buddy, zone, order, buddy_mt); + } if (unlikely(buddy_mt != migratetype)) { /*