CONFIG_NONLINEAR differentiates between the layout during early boot-time, and later at runtime. During early boot, before the nonlinear tables are initialized, the layout is assumed to be flat, and the __boot variants are used. Create these macros now, so that the nonlinear patch can use them, but use the default linear implementation for now. Signed-off-by: Dave Hansen --- memhotplug-dave/include/asm-i386/page.h | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff -puN include/asm-i386/page.h~D0-create-__boot-i386 include/asm-i386/page.h --- memhotplug/include/asm-i386/page.h~D0-create-__boot-i386 2005-02-17 15:25:43.000000000 -0800 +++ memhotplug-dave/include/asm-i386/page.h 2005-02-17 15:25:43.000000000 -0800 @@ -133,8 +133,10 @@ extern int page_is_ram(unsigned long pag #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET) #define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE) #define MAXMEM (-__PAGE_OFFSET-__VMALLOC_RESERVE) -#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) -#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) +#define __boot_pa(x) ((unsigned long)(x)-PAGE_OFFSET) +#define __boot_va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) +#define __pa(x) __boot_pa(x) +#define __va(x) __boot_va(x) #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) #ifdef CONFIG_FLATMEM #define pfn_to_page(pfn) (mem_map + (pfn)) _