From: Ingo Molnar <mingo@elte.hu>

reshuffle the way TASK_SIZE is defined on x86.  [UML relied on a specific
order of definitions within the x86 header files, the 4/4 patch broke this
assumption.]


---

 25-akpm/arch/i386/kernel/vmlinux.lds.S |    1 +
 25-akpm/include/asm-i386/processor.h   |   28 ++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff -puN arch/i386/kernel/vmlinux.lds.S~4g4g-uml-fix arch/i386/kernel/vmlinux.lds.S
--- 25/arch/i386/kernel/vmlinux.lds.S~4g4g-uml-fix	Tue Feb  3 15:40:58 2004
+++ 25-akpm/arch/i386/kernel/vmlinux.lds.S	Tue Feb  3 15:40:58 2004
@@ -5,6 +5,7 @@
 #include <asm-generic/vmlinux.lds.h>
 #include <linux/config.h>
 #include <asm/page.h>
+#include <asm/processor.h>
 #include <asm/asm_offsets.h>
 	
 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
diff -puN include/asm-i386/processor.h~4g4g-uml-fix include/asm-i386/processor.h
--- 25/include/asm-i386/processor.h~4g4g-uml-fix	Tue Feb  3 15:40:58 2004
+++ 25-akpm/include/asm-i386/processor.h	Tue Feb  3 15:40:58 2004
@@ -7,6 +7,8 @@
 #ifndef __ASM_I386_PROCESSOR_H
 #define __ASM_I386_PROCESSOR_H
 
+#ifndef __ASSEMBLY__
+
 #include <asm/vm86.h>
 #include <asm/math_emu.h>
 #include <asm/segment.h>
@@ -649,4 +651,30 @@ extern void select_idle_routine(const st
 #define ARCH_HAS_SCHED_WAKE_BALANCE
 #endif
 
+#endif /* ! __ASSEMBLY__ */
+
+/*
+ * This handles the memory map.. We could make this a config
+ * option, but too many people screw it up, and too few need
+ * it.
+ *
+ * A __PAGE_OFFSET of 0xC0000000 means that the kernel has
+ * a virtual address space of one gigabyte, which limits the
+ * amount of physical memory you can use to about 950MB.
+ *
+ * If you want more physical memory than this then see the CONFIG_HIGHMEM4G
+ * and CONFIG_HIGHMEM64G options in the kernel configuration.
+ *
+ * Note: on PAE the kernel must never go below 32 MB, we use the
+ * first 8 entries of the 2-level boot pgd for PAE magic.
+ */
+
+#ifdef CONFIG_X86_4G_VM_LAYOUT
+#define __PAGE_OFFSET		(0x02000000)
+#define TASK_SIZE		(0xff000000)
+#else
+#define __PAGE_OFFSET		(0xc0000000)
+#define TASK_SIZE		(0xc0000000)
+#endif
+
 #endif /* __ASM_I386_PROCESSOR_H */

_