[ARM] rationalize memory configuration code some more
Currently there are two instances of struct meminfo: one in kernel/setup.c marked __initdata, and another in mm/init.c with permanent storage. Let's keep only the later to directly populate the permanent version from arm_add_memory(). Also move common validation tests between the MMU and non-MMU cases into arm_add_memory() to remove some duplication. Protection against overflowing the membank array is also moved in there in order to cover the kernel cmdline parsing path as well. Signed-off-by: Nicolas Pitre <nico@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
43ae286b7d
commit
4b5f32cee0
@@ -41,27 +41,13 @@ void __init reserve_node_zero(pg_data_t *pgdat)
|
||||
BOOTMEM_DEFAULT);
|
||||
}
|
||||
|
||||
static void __init sanity_check_meminfo(struct meminfo *mi)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
for (i = 0, j = 0; i < mi->nr_banks; i++) {
|
||||
struct membank *mb = &mi->bank[i];
|
||||
|
||||
if (mb->size != 0 && mb->node < MAX_NUMNODES)
|
||||
mi->bank[j++] = mi->bank[i];
|
||||
}
|
||||
mi->nr_banks = j;
|
||||
}
|
||||
|
||||
/*
|
||||
* paging_init() sets up the page tables, initialises the zone memory
|
||||
* maps, and sets up the zero page, bad page and bad page tables.
|
||||
*/
|
||||
void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc)
|
||||
void __init paging_init(struct machine_desc *mdesc)
|
||||
{
|
||||
sanity_check_meminfo(mi);
|
||||
bootmem_init(mi);
|
||||
bootmem_init();
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user