Lines Matching +full:no +full:- +full:pc +full:- +full:write
1 // TODO VM_EXEC flag work-around, cache aliasing
9 * Copyright (C) 2001 - 2010 Tensilica Inc.
30 /* Synchronize this task's top level page-table in vmalloc_fault()
33 struct mm_struct *act_mm = current->active_mm; in vmalloc_fault()
44 pgd = act_mm->pgd + index; in vmalloc_fault()
91 struct mm_struct *mm = current->mm; in do_page_fault()
92 unsigned int exccause = regs->exccause; in do_page_fault()
93 unsigned int address = regs->excvaddr; in do_page_fault()
102 /* We fault-in kernel-space virtual memory on-demand. The in do_page_fault()
110 /* If we're in an interrupt or have no user in do_page_fault()
124 current->comm, current->pid, in do_page_fault()
125 address, exccause, regs->pc, in do_page_fault()
145 if (!(vma->vm_flags & VM_WRITE)) in do_page_fault()
149 if (!(vma->vm_flags & VM_EXEC)) in do_page_fault()
151 } else /* Allow read even from write-only pages. */ in do_page_fault()
152 if (!(vma->vm_flags & (VM_READ | VM_WRITE))) in do_page_fault()
184 /* No need to mmap_read_unlock(mm) as we would in do_page_fault()
242 if ((entry = search_exception_tables(regs->pc)) != NULL) { in bad_page_fault()
243 pr_debug("%s: Exception at pc=%#010lx (%lx)\n", in bad_page_fault()
244 current->comm, regs->pc, entry->fixup); in bad_page_fault()
245 regs->pc = entry->fixup; in bad_page_fault()
253 "address %08lx\n pc = %08lx, ra = %08lx\n", in bad_page_fault()
254 address, regs->pc, regs->areg[0]); in bad_page_fault()