diff options
Diffstat (limited to 'arch/ia64/mm/init.c')
| -rw-r--r-- | arch/ia64/mm/init.c | 14 | 
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index b19f47a5a305..16d0d7d22657 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c @@ -536,18 +536,20 @@ virtual_memmap_init(u64 start, u64 end, void *arg)  		    / sizeof(struct page));  	if (map_start < map_end) -		memmap_init_zone((unsigned long)(map_end - map_start), +		memmap_init_range((unsigned long)(map_end - map_start),  				 args->nid, args->zone, page_to_pfn(map_start), page_to_pfn(map_end),  				 MEMINIT_EARLY, NULL, MIGRATE_MOVABLE);  	return 0;  } -void __meminit -memmap_init (unsigned long size, int nid, unsigned long zone, -	     unsigned long start_pfn) +void __meminit memmap_init_zone(struct zone *zone)  { +	int nid = zone_to_nid(zone), zone_id = zone_idx(zone); +	unsigned long start_pfn = zone->zone_start_pfn; +	unsigned long size = zone->spanned_pages; +  	if (!vmem_map) { -		memmap_init_zone(size, nid, zone, start_pfn, start_pfn + size, +		memmap_init_range(size, nid, zone_id, start_pfn, start_pfn + size,  				 MEMINIT_EARLY, NULL, MIGRATE_MOVABLE);  	} else {  		struct page *start; @@ -557,7 +559,7 @@ memmap_init (unsigned long size, int nid, unsigned long zone,  		args.start = start;  		args.end = start + size;  		args.nid = nid; -		args.zone = zone; +		args.zone = zone_id;  		efi_memmap_walk(virtual_memmap_init, &args);  	}  | 
