aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/setup.c
diff options
context:
space:
mode:
authorFranck Bui-Huu <fbuihuu@gmail.com>2007-01-10 03:44:05 -0500
committerRalf Baechle <ralf@linux-mips.org>2007-02-06 11:53:13 -0500
commit6f284a2ce7b8bc49cb8455b1763357897a899abb (patch)
treeabf59702fad617780f59594aa8939db7ec4c76d6 /arch/mips/kernel/setup.c
parentdb84dc61552ae0d198a8133d28b80c3838930ba8 (diff)
[MIPS] FLATMEM: introduce PHYS_OFFSET.
The old code was assuming that min_low_pfn was always 0. This means that platforms having a big hole at their memory start paid the price of wasting some memory for the allocation of unused entries in mem_map[]. This patch prevents this waste. It introduces PHYS_OFFSET define which is the start of the physical memory and uses it wherever needed. Specially when converting physical/virtual addresses into virtual/physical ones. Currently all platforms defines PHYS_OFFSET to 0. Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/setup.c')
-rw-r--r--arch/mips/kernel/setup.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index f352cd9c834b..e1d76b87601c 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -315,13 +315,17 @@ static void __init bootmem_init(void)
315 315
316 if (min_low_pfn >= max_low_pfn) 316 if (min_low_pfn >= max_low_pfn)
317 panic("Incorrect memory mapping !!!"); 317 panic("Incorrect memory mapping !!!");
318 if (min_low_pfn > 0) { 318 if (min_low_pfn > ARCH_PFN_OFFSET) {
319 printk(KERN_INFO 319 printk(KERN_INFO
320 "Wasting %lu bytes for tracking %lu unused pages\n", 320 "Wasting %lu bytes for tracking %lu unused pages\n",
321 min_low_pfn * sizeof(struct page), 321 (min_low_pfn - ARCH_PFN_OFFSET) * sizeof(struct page),
322 min_low_pfn); 322 min_low_pfn - ARCH_PFN_OFFSET);
323 min_low_pfn = 0; 323 } else if (min_low_pfn < ARCH_PFN_OFFSET) {
324 printk(KERN_INFO
325 "%lu free pages won't be used\n",
326 ARCH_PFN_OFFSET - min_low_pfn);
324 } 327 }
328 min_low_pfn = ARCH_PFN_OFFSET;
325 329
326 /* 330 /*
327 * Determine low and high memory ranges 331 * Determine low and high memory ranges