From: Ingo Molnar 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 #include #include +#include #include 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 #include #include @@ -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 */ _