diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2006-12-06 20:14:03 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:03 -0500 |
commit | 8621b81c744ff8880a1efe095a4dcd09763ddb5a (patch) | |
tree | 46ed6f4b7c0e2391bcc956a7e0e0fc498e389f67 | |
parent | 9f45accf17efc050ba26bf77cc4f166c950b284e (diff) |
[PATCH] i386: Reserve kernel memory starting from _text
Currently when we are reserving the memory the kernel text
resides in we start at __PHYSICAL_START which happens to be
correct but not very obvious. In addition when we start relocating
the kernel __PHYSICAL_START is the wrong value, as it is an
absolute symbol that does not get relocated.
By starting the reservation at __pa_symbol(_text)
the code is clearer and will be correct when relocated.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
-rw-r--r-- | arch/i386/kernel/setup.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index 141041dde74d..61539afbdf23 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -1118,8 +1118,8 @@ void __init setup_bootmem_allocator(void) | |||
1118 | * the (very unlikely) case of us accidentally initializing the | 1118 | * the (very unlikely) case of us accidentally initializing the |
1119 | * bootmem allocator with an invalid RAM area. | 1119 | * bootmem allocator with an invalid RAM area. |
1120 | */ | 1120 | */ |
1121 | reserve_bootmem(__PHYSICAL_START, (PFN_PHYS(min_low_pfn) + | 1121 | reserve_bootmem(__pa_symbol(_text), (PFN_PHYS(min_low_pfn) + |
1122 | bootmap_size + PAGE_SIZE-1) - (__PHYSICAL_START)); | 1122 | bootmap_size + PAGE_SIZE-1) - __pa_symbol(_text)); |
1123 | 1123 | ||
1124 | /* | 1124 | /* |
1125 | * reserve physical page 0 - it's a special BIOS page on many boxes, | 1125 | * reserve physical page 0 - it's a special BIOS page on many boxes, |