|
@@ -2050,8 +2050,9 @@ static __meminit void zone_pcp_init(struct zone *zone)
|
|
|
zone->name, zone->present_pages, batch);
|
|
|
}
|
|
|
|
|
|
-static __meminit void init_currently_empty_zone(struct zone *zone,
|
|
|
- unsigned long zone_start_pfn, unsigned long size)
|
|
|
+__meminit int init_currently_empty_zone(struct zone *zone,
|
|
|
+ unsigned long zone_start_pfn,
|
|
|
+ unsigned long size)
|
|
|
{
|
|
|
struct pglist_data *pgdat = zone->zone_pgdat;
|
|
|
|
|
@@ -2063,6 +2064,8 @@ static __meminit void init_currently_empty_zone(struct zone *zone,
|
|
|
memmap_init(size, pgdat->node_id, zone_idx(zone), zone_start_pfn);
|
|
|
|
|
|
zone_init_free_lists(pgdat, zone, zone->spanned_pages);
|
|
|
+
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -2077,6 +2080,7 @@ static void __meminit free_area_init_core(struct pglist_data *pgdat,
|
|
|
unsigned long j;
|
|
|
int nid = pgdat->node_id;
|
|
|
unsigned long zone_start_pfn = pgdat->node_start_pfn;
|
|
|
+ int ret;
|
|
|
|
|
|
pgdat_resize_init(pgdat);
|
|
|
pgdat->nr_zones = 0;
|
|
@@ -2118,7 +2122,8 @@ static void __meminit free_area_init_core(struct pglist_data *pgdat,
|
|
|
continue;
|
|
|
|
|
|
zonetable_add(zone, nid, j, zone_start_pfn, size);
|
|
|
- init_currently_empty_zone(zone, zone_start_pfn, size);
|
|
|
+ ret = init_currently_empty_zone(zone, zone_start_pfn, size);
|
|
|
+ BUG_ON(ret);
|
|
|
zone_start_pfn += size;
|
|
|
}
|
|
|
}
|