Lines Matching +full:no +full:- +full:pc +full:- +full:write
1 // SPDX-License-Identifier: GPL-2.0
2 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
33 regs->pc = fixup->nextinsn; in fixup_exception()
46 asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long write, in do_page_fault() argument
51 struct mm_struct *mm = tsk->mm; in do_page_fault()
60 * We fault-in kernel-space virtual memory on-demand. The in do_page_fault()
71 * Synchronize this task's top level page-table in do_page_fault()
113 * If we're in an interrupt or have no user in do_page_fault()
119 down_read(&mm->mmap_sem); in do_page_fault()
123 if (vma->vm_start <= address) in do_page_fault()
125 if (!(vma->vm_flags & VM_GROWSDOWN)) in do_page_fault()
136 if (write) { in do_page_fault()
137 if (!(vma->vm_flags & VM_WRITE)) in do_page_fault()
140 if (!(vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC))) in do_page_fault()
149 fault = handle_mm_fault(vma, address, write ? FAULT_FLAG_WRITE : 0); in do_page_fault()
160 tsk->maj_flt++; in do_page_fault()
164 tsk->min_flt++; in do_page_fault()
169 up_read(&mm->mmap_sem); in do_page_fault()
177 up_read(&mm->mmap_sem); in do_page_fault()
197 "address 0x%08lx, pc: 0x%08lx\n", address, regs->pc); in do_page_fault()
198 die_if_kernel("Oops", regs, write); in do_page_fault()
203 * (which will retry the fault, or kill us if we got oom-killed). in do_page_fault()
209 up_read(&mm->mmap_sem); in do_page_fault()