On Tue, 10 Jan 2006 15:39:31 +0100 Jens Axboe wrote: > --- a/include/asm-i386/page.h > +++ b/include/asm-i386/page.h > @@ -109,11 +109,23 @@ extern int page_is_ram(unsigned long pag > > #endif /* __ASSEMBLY__ */ > > +#if defined(CONFIG_DEFAULT_3G) > +#define __PAGE_OFFSET_RAW (0xC0000000) > +#elif defined(CONFIG_DEFAULT_3G_OPT) > +#define __PAGE_OFFSET_RAW (0xB0000000) > +#elif defined(CONFIG_DEFAULT_2G) > +#define __PAGE_OFFSET_RAW (0x78000000) > +#elif defined(CONFIG_DEFAULT_1G) > +#define __PAGE_OFFSET_RAW (0x40000000) > +#else > +#error "Bad user/kernel offset" > +#endif > + > #ifdef __ASSEMBLY__ > -#define __PAGE_OFFSET (0xC0000000) > +#define __PAGE_OFFSET __PAGE_OFFSET_RAW > #define __PHYSICAL_START CONFIG_PHYSICAL_START > #else > -#define __PAGE_OFFSET (0xC0000000UL) > +#define __PAGE_OFFSET ((unsigned long)__PAGE_OFFSET_RAW) > #define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START) > #endif > #define __KERNEL_START (__PAGE_OFFSET + __PHYSICAL_START) Changing PAGE_OFFSET this way would break at least Valgrind (the latest release 3.1.0 by default is statically linked at address 0xb0000000, and PIE support does not seem to be present in that release). I remember that similar changes were also breaking Lisp implementations (cmucl, sbcl), however, I am not really sure about this.