[PATCH] Reserve Bootmem fix for booting nondefault location kernel

From: Vivek Goyal
Date: Wed Mar 16 2005 - 08:18:55 EST




This patch fixes a problem with reserving memory during boot up of a kernel
built for non-default location. Currently boot memory allocator reserves the
memory required by kernel image, boot allocaotor bitmap etc. It assumes that
kernel is loaded at 1MB (HIGH_MEMORY hard coded to 1024*1024). But kernel can
be built for non-default locatoin, hence existing hardcoding will lead to
reserving unnecessary memory. This patch fixes it.

Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
---

linux-2.6.11-mm3-vivek/arch/i386/kernel/setup.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN arch/i386/kernel/setup.c~x86-nondefault-kernel-reserve-bootmem-fix arch/i386/kernel/setup.c
--- linux-2.6.11-mm3/arch/i386/kernel/setup.c~x86-nondefault-kernel-reserve-bootmem-fix 2005-03-15 14:15:25.391856008 +0530
+++ linux-2.6.11-mm3-vivek/arch/i386/kernel/setup.c 2005-03-15 14:16:12.780651816 +0530
@@ -1135,8 +1135,8 @@ void __init setup_bootmem_allocator(void
* the (very unlikely) case of us accidentally initializing the
* bootmem allocator with an invalid RAM area.
*/
- reserve_bootmem(HIGH_MEMORY, (PFN_PHYS(min_low_pfn) +
- bootmap_size + PAGE_SIZE-1) - (HIGH_MEMORY));
+ reserve_bootmem(__PHYSICAL_START, (PFN_PHYS(min_low_pfn) +
+ bootmap_size + PAGE_SIZE-1) - (__PHYSICAL_START));

/*
* reserve physical page 0 - it's a special BIOS page on many boxes,
_