[PATCH 15/33] x86_64: Fix kernel direct mapping size check

Eric W. Biederman
2006-08-01T11:15:36Z

Instead of using physical addresse of _end which has nothing to
do with knowing if the kernel fits within it's reserved
virtual addresses, verify the virtual address of _end fits
within in the kernel virtual address mapping.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
arch/x86_64/kernel/head64.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86_64/kernel/head64.c b/arch/x86_64/kernel/head64.c
index 36647ce..454498c 100644
--- a/arch/x86_64/kernel/head64.c
+++ b/arch/x86_64/kernel/head64.c
@@ -116,7 +116,7 @@ #ifdef CONFIG_X86_IO_APIC
disable_apic = 1;
#endif
/* You need early console to see that */
- if (__pa_symbol(&_end) >= KERNEL_TEXT_SIZE)
+ if (((unsigned long)&_end) >= (__START_KERNEL_map + KERNEL_TEXT_SIZE))
panic("Kernel too big for kernel mapping\n");

setup_boot_cpu_data();
--
1.4.2.rc2.g5209e