summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Hildenbrand <david@redhat.com>2019-09-23 18:35:37 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-09-24 18:54:09 -0400
commit3fccb74cf3a688002c3340329e9e310c7aa8c816 (patch)
tree7ebd17331e8af0d725772d0faf89710bced4514f
parent6aa9b8b2c6355fc3339d6819ec250eadfe79fdb5 (diff)
mm/memory_hotplug: remove move_pfn_range()
Let's remove this indirection. We need the zone in the caller either way, so let's just detect it there. Add some documentation for move_pfn_range_to_zone() instead. [akpm@linux-foundation.org: restore newline, per David] Link: http://lkml.kernel.org/r/20190724142324.3686-1-david@redhat.com Signed-off-by: David Hildenbrand <david@redhat.com> Acked-by: Michal Hocko <mhocko@suse.com> Reviewed-by: Oscar Salvador <osalvador@suse.de> Cc: David Hildenbrand <david@redhat.com> Cc: Pavel Tatashin <pasha.tatashin@soleen.com> Cc: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/memory_hotplug.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 5f2c83ce9fde..5b8811945bbb 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -714,8 +714,13 @@ static void __meminit resize_pgdat_range(struct pglist_data *pgdat, unsigned lon
714 pgdat->node_start_pfn = start_pfn; 714 pgdat->node_start_pfn = start_pfn;
715 715
716 pgdat->node_spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - pgdat->node_start_pfn; 716 pgdat->node_spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - pgdat->node_start_pfn;
717}
718 717
718}
719/*
720 * Associate the pfn range with the given zone, initializing the memmaps
721 * and resizing the pgdat/zone data to span the added pages. After this
722 * call, all affected pages are PG_reserved.
723 */
719void __ref move_pfn_range_to_zone(struct zone *zone, unsigned long start_pfn, 724void __ref move_pfn_range_to_zone(struct zone *zone, unsigned long start_pfn,
720 unsigned long nr_pages, struct vmem_altmap *altmap) 725 unsigned long nr_pages, struct vmem_altmap *altmap)
721{ 726{
@@ -804,20 +809,6 @@ struct zone * zone_for_pfn_range(int online_type, int nid, unsigned start_pfn,
804 return default_zone_for_pfn(nid, start_pfn, nr_pages); 809 return default_zone_for_pfn(nid, start_pfn, nr_pages);
805} 810}
806 811
807/*
808 * Associates the given pfn range with the given node and the zone appropriate
809 * for the given online type.
810 */
811static struct zone * __meminit move_pfn_range(int online_type, int nid,
812 unsigned long start_pfn, unsigned long nr_pages)
813{
814 struct zone *zone;
815
816 zone = zone_for_pfn_range(online_type, nid, start_pfn, nr_pages);
817 move_pfn_range_to_zone(zone, start_pfn, nr_pages, NULL);
818 return zone;
819}
820
821int __ref online_pages(unsigned long pfn, unsigned long nr_pages, int online_type) 812int __ref online_pages(unsigned long pfn, unsigned long nr_pages, int online_type)
822{ 813{
823 unsigned long flags; 814 unsigned long flags;
@@ -840,7 +831,8 @@ int __ref online_pages(unsigned long pfn, unsigned long nr_pages, int online_typ
840 put_device(&mem->dev); 831 put_device(&mem->dev);
841 832
842 /* associate pfn range with the zone */ 833 /* associate pfn range with the zone */
843 zone = move_pfn_range(online_type, nid, pfn, nr_pages); 834 zone = zone_for_pfn_range(online_type, nid, pfn, nr_pages);
835 move_pfn_range_to_zone(zone, pfn, nr_pages, NULL);
844 836
845 arg.start_pfn = pfn; 837 arg.start_pfn = pfn;
846 arg.nr_pages = nr_pages; 838 arg.nr_pages = nr_pages;