Merge branch 'linus' into core/urgent
authorIngo Molnar <mingo@elte.hu>
Fri, 17 Oct 2008 09:20:52 +0000 (11:20 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 17 Oct 2008 09:20:52 +0000 (11:20 +0200)
1  2 
arch/powerpc/include/asm/page.h

index 94fe5138b30f8af99d1fdaaae50e0a2579292cec,64e144505f653e0ae1d4f190690ef458e9aad5e7..5ac51e6efc1d860ea0d72702d60e63fa42a20c81
   * 2 of the License, or (at your option) any later version.
   */
  
 +#ifndef __ASSEMBLY__
 +#include <linux/types.h>
 +#else
 +#include <asm/types.h>
 +#endif
  #include <asm/asm-compat.h>
  #include <asm/kdump.h>
 -#include <asm/types.h>
  
  /*
   * On PPC32 page size is 4K. For PPC64 we support either 4K or 64K software
  #define PAGE_OFFSET   ASM_CONST(CONFIG_PAGE_OFFSET)
  #define LOAD_OFFSET   ASM_CONST((CONFIG_KERNEL_START-CONFIG_PHYSICAL_START))
  
- #if defined(CONFIG_RELOCATABLE) && defined(CONFIG_FLATMEM)
+ #if defined(CONFIG_RELOCATABLE)
  #ifndef __ASSEMBLY__
  extern phys_addr_t memstart_addr;
  extern phys_addr_t kernstart_addr;
  #endif
  #define PHYSICAL_START        kernstart_addr
- #define MEMORY_START  memstart_addr
  #else
  #define PHYSICAL_START        ASM_CONST(CONFIG_PHYSICAL_START)
+ #endif
+ #ifdef CONFIG_PPC64
+ #define MEMORY_START  0UL
+ #elif defined(CONFIG_RELOCATABLE)
+ #define MEMORY_START  memstart_addr
+ #else
  #define MEMORY_START  (PHYSICAL_START + PAGE_OFFSET - KERNELBASE)
  #endif
  
  #define pfn_to_kaddr(pfn)     __va((pfn) << PAGE_SHIFT)
  #define virt_addr_valid(kaddr)        pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
  
- #define __va(x) ((void *)((unsigned long)(x) - PHYSICAL_START + KERNELBASE))
- #define __pa(x) ((unsigned long)(x) + PHYSICAL_START - KERNELBASE)
+ #define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - MEMORY_START))
+ #define __pa(x) ((unsigned long)(x) - PAGE_OFFSET + MEMORY_START)
  
  /*
   * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI,