|
@@ -446,7 +446,6 @@ void __init sparse_mem_maps_populate_node(struct page **map_map,
|
|
|
ms = __nr_to_section(pnum);
|
|
|
pr_err("%s: sparsemem memory map backing failed some memory will not be available\n",
|
|
|
__func__);
|
|
|
- ms->section_mem_map = 0;
|
|
|
}
|
|
|
}
|
|
|
#endif /* !CONFIG_SPARSEMEM_VMEMMAP */
|
|
@@ -474,7 +473,6 @@ static struct page __init *sparse_early_mem_map_alloc(unsigned long pnum)
|
|
|
|
|
|
pr_err("%s: sparsemem memory map backing failed some memory will not be available\n",
|
|
|
__func__);
|
|
|
- ms->section_mem_map = 0;
|
|
|
return NULL;
|
|
|
}
|
|
|
#endif
|
|
@@ -578,17 +576,23 @@ void __init sparse_init(void)
|
|
|
#endif
|
|
|
|
|
|
for_each_present_section_nr(0, pnum) {
|
|
|
+ struct mem_section *ms;
|
|
|
+ ms = __nr_to_section(pnum);
|
|
|
usemap = usemap_map[pnum];
|
|
|
- if (!usemap)
|
|
|
+ if (!usemap) {
|
|
|
+ ms->section_mem_map = 0;
|
|
|
continue;
|
|
|
+ }
|
|
|
|
|
|
#ifdef CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER
|
|
|
map = map_map[pnum];
|
|
|
#else
|
|
|
map = sparse_early_mem_map_alloc(pnum);
|
|
|
#endif
|
|
|
- if (!map)
|
|
|
+ if (!map) {
|
|
|
+ ms->section_mem_map = 0;
|
|
|
continue;
|
|
|
+ }
|
|
|
|
|
|
sparse_init_one_section(__nr_to_section(pnum), pnum, map,
|
|
|
usemap);
|