diff options
author | Franck Bui-Huu <fbuihuu@gmail.com> | 2007-01-10 03:44:05 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-02-06 11:53:13 -0500 |
commit | 6f284a2ce7b8bc49cb8455b1763357897a899abb (patch) | |
tree | abf59702fad617780f59594aa8939db7ec4c76d6 /arch/mips/kernel/setup.c | |
parent | db84dc61552ae0d198a8133d28b80c3838930ba8 (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.c | 12 |
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 |