diff options
Diffstat (limited to 'mm')
| -rw-r--r-- | mm/page_alloc.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 181dc593962b..616a2c956b4b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
| @@ -583,9 +583,11 @@ static inline void __free_one_page(struct page *page, | |||
| 583 | */ | 583 | */ |
| 584 | if (page_is_guard(buddy)) { | 584 | if (page_is_guard(buddy)) { |
| 585 | clear_page_guard_flag(buddy); | 585 | clear_page_guard_flag(buddy); |
| 586 | set_page_private(page, 0); | 586 | set_page_private(buddy, 0); |
| 587 | __mod_zone_freepage_state(zone, 1 << order, | 587 | if (!is_migrate_isolate(migratetype)) { |
| 588 | migratetype); | 588 | __mod_zone_freepage_state(zone, 1 << order, |
| 589 | migratetype); | ||
| 590 | } | ||
| 589 | } else { | 591 | } else { |
| 590 | list_del(&buddy->lru); | 592 | list_del(&buddy->lru); |
| 591 | zone->free_area[order].nr_free--; | 593 | zone->free_area[order].nr_free--; |
