Lines Matching refs:regs

40 				       struct pt_regs *regs)  in unhandled_fault()  argument
54 die_if_kernel("Oops", regs); in unhandled_fault()
60 struct pt_regs regs; in lookup_fault() local
91 memset(&regs, 0, sizeof(regs)); in lookup_fault()
92 regs.pc = pc; in lookup_fault()
93 regs.npc = pc + 4; in lookup_fault()
98 "nop\n" : "=r" (regs.psr)); in lookup_fault()
99 unhandled_fault(address, current, &regs); in lookup_fault()
106 show_signal_msg(struct pt_regs *regs, int sig, int code, in show_signal_msg() argument
118 (void *)regs->pc, (void *)regs->u_regs[UREG_I7], in show_signal_msg()
119 (void *)regs->u_regs[UREG_FP], code); in show_signal_msg()
121 print_vma_addr(KERN_CONT " in ", regs->pc); in show_signal_msg()
126 static void __do_fault_siginfo(int code, int sig, struct pt_regs *regs, in __do_fault_siginfo() argument
138 show_signal_msg(regs, sig, info.si_code, in __do_fault_siginfo()
144 static unsigned long compute_si_addr(struct pt_regs *regs, int text_fault) in compute_si_addr() argument
149 return regs->pc; in compute_si_addr()
151 if (regs->psr & PSR_PS) in compute_si_addr()
152 insn = *(unsigned int *) regs->pc; in compute_si_addr()
154 __get_user(insn, (unsigned int *) regs->pc); in compute_si_addr()
156 return safe_compute_effective_address(regs, insn); in compute_si_addr()
159 static noinline void do_fault_siginfo(int code, int sig, struct pt_regs *regs, in do_fault_siginfo() argument
162 unsigned long addr = compute_si_addr(regs, text_fault); in do_fault_siginfo()
164 __do_fault_siginfo(code, sig, regs, addr); in do_fault_siginfo()
167 asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write, in do_sparc_fault() argument
175 int from_user = !(regs->psr & PSR_PS); in do_sparc_fault()
180 address = regs->pc; in do_sparc_fault()
202 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); in do_sparc_fault()
263 1, regs, address); in do_sparc_fault()
267 1, regs, address); in do_sparc_fault()
295 do_fault_siginfo(code, SIGSEGV, regs, text_fault); in do_sparc_fault()
301 g2 = regs->u_regs[UREG_G2]; in do_sparc_fault()
303 fixup = search_extables_range(regs->pc, &g2); in do_sparc_fault()
313 regs->pc, address); in do_sparc_fault()
315 regs->pc, fixup, g2); in do_sparc_fault()
317 if ((regs->pc >= (unsigned long)__memset_start && in do_sparc_fault()
318 regs->pc < (unsigned long)__memset_end) || in do_sparc_fault()
319 (regs->pc >= (unsigned long)__csum_partial_copy_start && in do_sparc_fault()
320 regs->pc < (unsigned long)__csum_partial_copy_end)) { in do_sparc_fault()
321 regs->u_regs[UREG_I4] = address; in do_sparc_fault()
322 regs->u_regs[UREG_I5] = regs->pc; in do_sparc_fault()
324 regs->u_regs[UREG_G2] = g2; in do_sparc_fault()
325 regs->pc = fixup; in do_sparc_fault()
326 regs->npc = regs->pc + 4; in do_sparc_fault()
331 unhandled_fault(address, tsk, regs); in do_sparc_fault()
348 do_fault_siginfo(BUS_ADRERR, SIGBUS, regs, text_fault); in do_sparc_fault()
458 void window_ret_fault(struct pt_regs *regs) in window_ret_fault() argument
462 sp = regs->u_regs[UREG_FP]; in window_ret_fault()