diff options
author | Nicolas Pitre <nico@cam.org> | 2008-10-06 13:24:40 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-11-28 10:36:44 -0500 |
commit | 4b5f32cee0cce7b9783ced5cbeabd17aa53c51fb (patch) | |
tree | 95d3f2af07733cf70419ea5c3ae1100be2533197 /arch/arm/mm/nommu.c | |
parent | 43ae286b7d4d8c4983bc263ef2e3cccc10dedb2b (diff) |
[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>
Diffstat (limited to 'arch/arm/mm/nommu.c')
-rw-r--r-- | arch/arm/mm/nommu.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c index 07b62b238979..c085f4e8248b 100644 --- a/arch/arm/mm/nommu.c +++ b/arch/arm/mm/nommu.c | |||
@@ -41,27 +41,13 @@ void __init reserve_node_zero(pg_data_t *pgdat) | |||
41 | BOOTMEM_DEFAULT); | 41 | BOOTMEM_DEFAULT); |
42 | } | 42 | } |
43 | 43 | ||
44 | static void __init sanity_check_meminfo(struct meminfo *mi) | ||
45 | { | ||
46 | int i, j; | ||
47 | |||
48 | for (i = 0, j = 0; i < mi->nr_banks; i++) { | ||
49 | struct membank *mb = &mi->bank[i]; | ||
50 | |||
51 | if (mb->size != 0 && mb->node < MAX_NUMNODES) | ||
52 | mi->bank[j++] = mi->bank[i]; | ||
53 | } | ||
54 | mi->nr_banks = j; | ||
55 | } | ||
56 | |||
57 | /* | 44 | /* |
58 | * paging_init() sets up the page tables, initialises the zone memory | 45 | * paging_init() sets up the page tables, initialises the zone memory |
59 | * maps, and sets up the zero page, bad page and bad page tables. | 46 | * maps, and sets up the zero page, bad page and bad page tables. |
60 | */ | 47 | */ |
61 | void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc) | 48 | void __init paging_init(struct machine_desc *mdesc) |
62 | { | 49 | { |
63 | sanity_check_meminfo(mi); | 50 | bootmem_init(); |
64 | bootmem_init(mi); | ||
65 | } | 51 | } |
66 | 52 | ||
67 | /* | 53 | /* |