summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorChad Reese <creese@caviumnetworks.com>2006-05-30 17:16:49 -0700
committerRalf Baechle <ralf@linux-mips.org>2006-06-06 00:15:20 +0100
commitb1c231f5a57cb4a417c38a8a946f1e66db3bb9c0 (patch)
tree940184596b217cfe65948e8e29d91025e3657d47 /arch
parentecf52d3c895c8bc069b9ae07c18acf39d846c2ef (diff)
[MIPS] Fix sparsemem support.
Move memory_present() in arch/mips/kernel/setup.c. When using sparsemem extreme, this function does an allocate for bootmem. This would always fail since init_bootmem hasn't been called yet. Move memory_present after free_bootmem. This only marks actual memory ranges as present instead of the entire address space. Signed-off-by: Chad Reese <creese@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/kernel/setup.c3
-rw-r--r--arch/mips/mm/init.c2
2 files changed, 2 insertions, 3 deletions
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index a481be04769..397a70e651b 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -355,8 +355,6 @@ static inline void bootmem_init(void)
}
#endif
- memory_present(0, first_usable_pfn, max_low_pfn);
-
/* Initialize the boot-time allocator with low memory only. */
bootmap_size = init_bootmem(first_usable_pfn, max_low_pfn);
@@ -410,6 +408,7 @@ static inline void bootmem_init(void)
/* Register lowmem ranges */
free_bootmem(PFN_PHYS(curr_pfn), PFN_PHYS(size));
+ memory_present(0, curr_pfn, curr_pfn + size - 1);
}
/* Reserve the bootmap memory. */
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index c22308b93ff..33f6e1cdfd5 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -227,7 +227,7 @@ void __init mem_init(void)
for (tmp = 0; tmp < max_low_pfn; tmp++)
if (page_is_ram(tmp)) {
ram++;
- if (PageReserved(mem_map+tmp))
+ if (PageReserved(pfn_to_page(tmp)))
reservedpages++;
}