24 #include <linux/signal.h>
25 #include <linux/sched.h>
26 #include <linux/kernel.h>
27 #include <linux/errno.h>
28 #include <linux/string.h>
29 #include <linux/export.h>
30 #include <linux/types.h>
31 #include <linux/mman.h>
34 #include <linux/stddef.h>
39 #include <linux/slab.h>
41 #include <asm/pgalloc.h>
45 #include <asm/mmu_context.h>
46 #include <asm/pgtable.h>
49 #include <asm/machdep.h>
51 #include <asm/processor.h>
52 #include <asm/cputable.h>
53 #include <asm/sections.h>
59 #if TASK_SIZE_USER64 > PGTABLE_RANGE
60 #error TASK_SIZE_USER64 exceeds pagetable range
63 #ifdef CONFIG_PPC_STD_MMU_64
64 #if TASK_SIZE_USER64 > (1UL << (USER_ESID_BITS + SID_SHIFT))
65 #error TASK_SIZE_USER64 exceeds user VSID range
71 #ifdef CONFIG_PPC_MMU_NOHASH
72 static void *early_alloc_pgtable(
unsigned long size)
107 ptep = pte_alloc_kernel(pmdp, ea);
113 #ifdef CONFIG_PPC_MMU_NOHASH
119 #ifdef PUD_TABLE_SIZE
151 "memory at %016lx !\n", pa);
224 if ((size == 0) || (paligned == 0))
247 ret += addr & ~PAGE_MASK;
260 void *
caller = __builtin_return_address(0);
263 return ppc_md.ioremap(addr, size, flags, caller);
270 void *
caller = __builtin_return_address(0);
273 return ppc_md.ioremap(addr, size, flags, caller);
280 void *
caller = __builtin_return_address(0);
294 flags |= _PAGE_BAP_SR;
298 return ppc_md.ioremap(addr, size, flags, caller);
314 addr = (
void *) ((
unsigned long __force)