Lines Matching +full:no +full:- +full:pc +full:- +full:write
7 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
43 * Check whether the instruction at regs->pc is a store using
50 if (get_user(inst, (unsigned int __user *)regs->pc)) in store_updates_sp()
70 /* MS: no context */ in bad_page_fault()
72 fixup = search_exception_tables(regs->pc); in bad_page_fault()
74 regs->pc = fixup->fixup; in bad_page_fault()
90 struct mm_struct *mm = current->mm; in do_page_fault()
96 regs->ear = address; in do_page_fault()
97 regs->esr = error_code; in do_page_fault()
114 as is current->mm == NULL. */ in do_page_fault()
118 regs->r15, regs->msr); in do_page_fault()
143 if (kernel_mode(regs) && !search_exception_tables(regs->pc)) in do_page_fault()
154 if (vma->vm_start <= address) in do_page_fault()
157 if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) in do_page_fault()
168 * The exec code can write slightly over 640kB to the stack in do_page_fault()
172 if (unlikely(address + 0x100000 < vma->vm_end)) { in do_page_fault()
175 struct pt_regs *uregs = current->thread.regs; in do_page_fault()
180 * A user-mode access to an address a long way below in do_page_fault()
187 * If we don't check this then any write to the area in do_page_fault()
191 if (address + 2048 < uregs->r1 in do_page_fault()
201 /* a write */ in do_page_fault()
203 if (unlikely(!(vma->vm_flags & VM_WRITE))) in do_page_fault()
211 if (unlikely(!(vma->vm_flags & (VM_READ | VM_EXEC)))) in do_page_fault()
243 * No need to mmap_read_unlock(mm) as we would in do_page_fault()
256 * -- Cort in do_page_fault()