Lines Matching +full:no +full:- +full:pc +full:- +full:write

1 // SPDX-License-Identifier: GPL-2.0
50 printk(KERN_ALERT "tsk->{mm,active_mm}->context = %08lx\n", in unhandled_fault()
51 (tsk->mm ? tsk->mm->context : tsk->active_mm->context)); in unhandled_fault()
52 printk(KERN_ALERT "tsk->{mm,active_mm}->pgd = %08lx\n", in unhandled_fault()
53 (tsk->mm ? (unsigned long) tsk->mm->pgd : in unhandled_fault()
54 (unsigned long) tsk->active_mm->pgd)); in unhandled_fault()
70 tsk->comm, task_pid_nr(tsk), address, in show_signal_msg()
71 (void *)regs->pc, (void *)regs->u_regs[UREG_I7], in show_signal_msg()
72 (void *)regs->u_regs[UREG_FP], code); in show_signal_msg()
74 print_vma_addr(KERN_CONT " in ", regs->pc); in show_signal_msg()
94 return regs->pc; in compute_si_addr()
96 if (regs->psr & PSR_PS) in compute_si_addr()
97 insn = *(unsigned int *) regs->pc; in compute_si_addr()
99 __get_user(insn, (unsigned int *) regs->pc); in compute_si_addr()
112 asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write, in do_sparc_fault() argument
117 struct mm_struct *mm = tsk->mm; in do_sparc_fault()
118 int from_user = !(regs->psr & PSR_PS); in do_sparc_fault()
124 address = regs->pc; in do_sparc_fault()
127 * We fault-in kernel-space virtual memory on-demand. The in do_sparc_fault()
140 * If we're in an interrupt or have no user in do_sparc_fault()
157 if (vma->vm_start <= address) in do_sparc_fault()
159 if (!(vma->vm_flags & VM_GROWSDOWN)) in do_sparc_fault()
169 if (write) { in do_sparc_fault()
170 if (!(vma->vm_flags & VM_WRITE)) in do_sparc_fault()
173 /* Allow reads even for write-only mappings */ in do_sparc_fault()
174 if (!(vma->vm_flags & (VM_READ | VM_EXEC))) in do_sparc_fault()
180 if (write) in do_sparc_fault()
210 /* No need to mmap_read_unlock(mm) as we would in do_sparc_fault()
240 entry = search_exception_tables(regs->pc); in do_sparc_fault()
242 printk("Exception: PC<%08lx> faddr<%08lx>\n", in do_sparc_fault()
243 regs->pc, address); in do_sparc_fault()
245 regs->pc, entry->fixup); in do_sparc_fault()
247 regs->pc = entry->fixup; in do_sparc_fault()
248 regs->npc = regs->pc + 4; in do_sparc_fault()
275 * Synchronize this task's top level page-table in do_sparc_fault()
284 pgd = tsk->active_mm->pgd + offset; in do_sparc_fault()
311 static void force_user_fault(unsigned long address, int write) in force_user_fault() argument
315 struct mm_struct *mm = tsk->mm; in force_user_fault()
325 if (vma->vm_start <= address) in force_user_fault()
327 if (!(vma->vm_flags & VM_GROWSDOWN)) in force_user_fault()
333 if (write) { in force_user_fault()
334 if (!(vma->vm_flags & VM_WRITE)) in force_user_fault()
338 if (!(vma->vm_flags & (VM_READ | VM_EXEC))) in force_user_fault()
350 __do_fault_siginfo(code, SIGSEGV, tsk->thread.kregs, address); in force_user_fault()
355 __do_fault_siginfo(BUS_ADRERR, SIGBUS, tsk->thread.kregs, address); in force_user_fault()
368 sp = current_thread_info()->rwbuf_stkptrs[0]; in window_overflow_fault()
389 sp = regs->u_regs[UREG_FP]; in window_ret_fault()