diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/hmm.c | 2 | ||||
-rw-r--r-- | mm/memory_hotplug.c | 9 | ||||
-rw-r--r-- | mm/page_alloc.c | 6 |
3 files changed, 9 insertions, 8 deletions
@@ -942,7 +942,7 @@ static int hmm_devmem_pages_create(struct hmm_devmem *devmem) | |||
942 | } | 942 | } |
943 | move_pfn_range_to_zone(&NODE_DATA(nid)->node_zones[ZONE_DEVICE], | 943 | move_pfn_range_to_zone(&NODE_DATA(nid)->node_zones[ZONE_DEVICE], |
944 | align_start >> PAGE_SHIFT, | 944 | align_start >> PAGE_SHIFT, |
945 | align_size >> PAGE_SHIFT); | 945 | align_size >> PAGE_SHIFT, NULL); |
946 | mem_hotplug_done(); | 946 | mem_hotplug_done(); |
947 | 947 | ||
948 | for (pfn = devmem->pfn_first; pfn < devmem->pfn_last; pfn++) { | 948 | for (pfn = devmem->pfn_first; pfn < devmem->pfn_last; pfn++) { |
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index a8dde9734120..12df8a5fadcc 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c | |||
@@ -798,8 +798,8 @@ static void __meminit resize_pgdat_range(struct pglist_data *pgdat, unsigned lon | |||
798 | pgdat->node_spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - pgdat->node_start_pfn; | 798 | pgdat->node_spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - pgdat->node_start_pfn; |
799 | } | 799 | } |
800 | 800 | ||
801 | void __ref move_pfn_range_to_zone(struct zone *zone, | 801 | void __ref move_pfn_range_to_zone(struct zone *zone, unsigned long start_pfn, |
802 | unsigned long start_pfn, unsigned long nr_pages) | 802 | unsigned long nr_pages, struct vmem_altmap *altmap) |
803 | { | 803 | { |
804 | struct pglist_data *pgdat = zone->zone_pgdat; | 804 | struct pglist_data *pgdat = zone->zone_pgdat; |
805 | int nid = pgdat->node_id; | 805 | int nid = pgdat->node_id; |
@@ -824,7 +824,8 @@ void __ref move_pfn_range_to_zone(struct zone *zone, | |||
824 | * expects the zone spans the pfn range. All the pages in the range | 824 | * expects the zone spans the pfn range. All the pages in the range |
825 | * are reserved so nobody should be touching them so we should be safe | 825 | * are reserved so nobody should be touching them so we should be safe |
826 | */ | 826 | */ |
827 | memmap_init_zone(nr_pages, nid, zone_idx(zone), start_pfn, MEMMAP_HOTPLUG); | 827 | memmap_init_zone(nr_pages, nid, zone_idx(zone), start_pfn, |
828 | MEMMAP_HOTPLUG, altmap); | ||
828 | 829 | ||
829 | set_zone_contiguous(zone); | 830 | set_zone_contiguous(zone); |
830 | } | 831 | } |
@@ -896,7 +897,7 @@ static struct zone * __meminit move_pfn_range(int online_type, int nid, | |||
896 | struct zone *zone; | 897 | struct zone *zone; |
897 | 898 | ||
898 | zone = zone_for_pfn_range(online_type, nid, start_pfn, nr_pages); | 899 | zone = zone_for_pfn_range(online_type, nid, start_pfn, nr_pages); |
899 | move_pfn_range_to_zone(zone, start_pfn, nr_pages); | 900 | move_pfn_range_to_zone(zone, start_pfn, nr_pages, NULL); |
900 | return zone; | 901 | return zone; |
901 | } | 902 | } |
902 | 903 | ||
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 7e5e775e97f4..1748dd4a4b1b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -5314,9 +5314,9 @@ void __ref build_all_zonelists(pg_data_t *pgdat) | |||
5314 | * done. Non-atomic initialization, single-pass. | 5314 | * done. Non-atomic initialization, single-pass. |
5315 | */ | 5315 | */ |
5316 | void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone, | 5316 | void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone, |
5317 | unsigned long start_pfn, enum memmap_context context) | 5317 | unsigned long start_pfn, enum memmap_context context, |
5318 | struct vmem_altmap *altmap) | ||
5318 | { | 5319 | { |
5319 | struct vmem_altmap *altmap = to_vmem_altmap(__pfn_to_phys(start_pfn)); | ||
5320 | unsigned long end_pfn = start_pfn + size; | 5320 | unsigned long end_pfn = start_pfn + size; |
5321 | pg_data_t *pgdat = NODE_DATA(nid); | 5321 | pg_data_t *pgdat = NODE_DATA(nid); |
5322 | unsigned long pfn; | 5322 | unsigned long pfn; |
@@ -5417,7 +5417,7 @@ static void __meminit zone_init_free_lists(struct zone *zone) | |||
5417 | 5417 | ||
5418 | #ifndef __HAVE_ARCH_MEMMAP_INIT | 5418 | #ifndef __HAVE_ARCH_MEMMAP_INIT |
5419 | #define memmap_init(size, nid, zone, start_pfn) \ | 5419 | #define memmap_init(size, nid, zone, start_pfn) \ |
5420 | memmap_init_zone((size), (nid), (zone), (start_pfn), MEMMAP_EARLY) | 5420 | memmap_init_zone((size), (nid), (zone), (start_pfn), MEMMAP_EARLY, NULL) |
5421 | #endif | 5421 | #endif |
5422 | 5422 | ||
5423 | static int zone_batchsize(struct zone *zone) | 5423 | static int zone_batchsize(struct zone *zone) |