diff options
Diffstat (limited to 'mm/memory_hotplug.c')
-rw-r--r-- | mm/memory_hotplug.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 814ecb2d262f..5e34922124a3 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c | |||
@@ -772,20 +772,13 @@ EXPORT_SYMBOL_GPL(__online_page_set_limits); | |||
772 | 772 | ||
773 | void __online_page_increment_counters(struct page *page) | 773 | void __online_page_increment_counters(struct page *page) |
774 | { | 774 | { |
775 | totalram_pages++; | 775 | adjust_managed_page_count(page, 1); |
776 | |||
777 | #ifdef CONFIG_HIGHMEM | ||
778 | if (PageHighMem(page)) | ||
779 | totalhigh_pages++; | ||
780 | #endif | ||
781 | } | 776 | } |
782 | EXPORT_SYMBOL_GPL(__online_page_increment_counters); | 777 | EXPORT_SYMBOL_GPL(__online_page_increment_counters); |
783 | 778 | ||
784 | void __online_page_free(struct page *page) | 779 | void __online_page_free(struct page *page) |
785 | { | 780 | { |
786 | ClearPageReserved(page); | 781 | __free_reserved_page(page); |
787 | init_page_count(page); | ||
788 | __free_page(page); | ||
789 | } | 782 | } |
790 | EXPORT_SYMBOL_GPL(__online_page_free); | 783 | EXPORT_SYMBOL_GPL(__online_page_free); |
791 | 784 | ||
@@ -983,7 +976,6 @@ int __ref online_pages(unsigned long pfn, unsigned long nr_pages, int online_typ | |||
983 | return ret; | 976 | return ret; |
984 | } | 977 | } |
985 | 978 | ||
986 | zone->managed_pages += onlined_pages; | ||
987 | zone->present_pages += onlined_pages; | 979 | zone->present_pages += onlined_pages; |
988 | 980 | ||
989 | pgdat_resize_lock(zone->zone_pgdat, &flags); | 981 | pgdat_resize_lock(zone->zone_pgdat, &flags); |
@@ -1572,15 +1564,13 @@ repeat: | |||
1572 | /* reset pagetype flags and makes migrate type to be MOVABLE */ | 1564 | /* reset pagetype flags and makes migrate type to be MOVABLE */ |
1573 | undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE); | 1565 | undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE); |
1574 | /* removal success */ | 1566 | /* removal success */ |
1575 | zone->managed_pages -= offlined_pages; | 1567 | adjust_managed_page_count(pfn_to_page(start_pfn), -offlined_pages); |
1576 | zone->present_pages -= offlined_pages; | 1568 | zone->present_pages -= offlined_pages; |
1577 | 1569 | ||
1578 | pgdat_resize_lock(zone->zone_pgdat, &flags); | 1570 | pgdat_resize_lock(zone->zone_pgdat, &flags); |
1579 | zone->zone_pgdat->node_present_pages -= offlined_pages; | 1571 | zone->zone_pgdat->node_present_pages -= offlined_pages; |
1580 | pgdat_resize_unlock(zone->zone_pgdat, &flags); | 1572 | pgdat_resize_unlock(zone->zone_pgdat, &flags); |
1581 | 1573 | ||
1582 | totalram_pages -= offlined_pages; | ||
1583 | |||
1584 | init_per_zone_wmark_min(); | 1574 | init_per_zone_wmark_min(); |
1585 | 1575 | ||
1586 | if (!populated_zone(zone)) { | 1576 | if (!populated_zone(zone)) { |