Lines Matching +full:no +full:- +full:pc +full:- +full:write
1 // SPDX-License-Identifier: GPL-2.0
48 next_mm->context[smp_processor_id()] = mmc; in __load_new_mm_context()
50 pcb = ¤t_thread_info()->pcb; in __load_new_mm_context()
51 pcb->asn = mmc & HARDWARE_ASN_MASK; in __load_new_mm_context()
52 pcb->ptbr = ((unsigned long) next_mm->pgd - IDENT_ADDR) >> PAGE_SHIFT; in __load_new_mm_context()
65 * 2 = fault-on-read
66 * 3 = fault-on-execute
67 * 4 = fault-on-write
70 * -1 = instruction fetch
81 (((unsigned long *)regs)[(r) <= 8 ? (r) : (r) <= 15 ? (r)-16 : \
82 (r) <= 18 ? (r)+10 : (r)-10])
89 struct mm_struct *mm = current->mm; in do_page_fault()
100 __get_user(insn, (unsigned int __user *)regs->pc); in do_page_fault()
104 regs->pc += 4; in do_page_fault()
109 /* If we're in an interrupt context, or have no user context, in do_page_fault()
130 if (!(vma->vm_flags & VM_EXEC)) in do_page_fault()
133 /* Allow reads even for write-only mappings */ in do_page_fault()
134 if (!(vma->vm_flags & (VM_READ | VM_WRITE))) in do_page_fault()
137 if (!(vma->vm_flags & VM_WRITE)) in do_page_fault()
170 /* No need to mmap_read_unlock(mm) as we would in do_page_fault()
193 if ((fixup = search_exception_tables(regs->pc)) != 0) { in do_page_fault()
195 newpc = fixup_exception(dpf_reg, fixup, regs->pc); in do_page_fault()
196 regs->pc = newpc; in do_page_fault()
204 die_if_kernel("Oops", regs, cause, (unsigned long*)regs - 16); in do_page_fault()
234 /* Synchronize this task's top level page-table in do_page_fault()
239 pgd = current->active_mm->pgd + index; in do_page_fault()