|
@@ -432,8 +432,9 @@ static inline void __free_one_page(struct page *page,
|
|
|
|
|
|
buddy = __page_find_buddy(page, page_idx, order);
|
|
buddy = __page_find_buddy(page, page_idx, order);
|
|
if (!page_is_buddy(page, buddy, order))
|
|
if (!page_is_buddy(page, buddy, order))
|
|
- break; /* Move the buddy up one level. */
|
|
|
|
|
|
+ break;
|
|
|
|
|
|
|
|
+ /* Our buddy is free, merge with it and move up one order. */
|
|
list_del(&buddy->lru);
|
|
list_del(&buddy->lru);
|
|
zone->free_area[order].nr_free--;
|
|
zone->free_area[order].nr_free--;
|
|
rmv_page_order(buddy);
|
|
rmv_page_order(buddy);
|