aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory_hotplug.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/memory_hotplug.c')
-rw-r--r--mm/memory_hotplug.c16
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
773void __online_page_increment_counters(struct page *page) 773void __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}
782EXPORT_SYMBOL_GPL(__online_page_increment_counters); 777EXPORT_SYMBOL_GPL(__online_page_increment_counters);
783 778
784void __online_page_free(struct page *page) 779void __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}
790EXPORT_SYMBOL_GPL(__online_page_free); 783EXPORT_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)) {