Lines Matching refs:regs
43 * Check whether the instruction at regs->pc is a store using
46 static int store_updates_sp(struct pt_regs *regs)
50 if (get_user(inst, (unsigned int __user *)regs->pc))
67 void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
72 fixup = search_exception_tables(regs->pc);
74 regs->pc = fixup->fixup;
79 die("kernel access of bad area", regs, sig);
86 void do_page_fault(struct pt_regs *regs, unsigned long address,
96 regs->ear = address;
97 regs->esr = error_code;
100 if (unlikely(kernel_mode(regs) && (address >= TASK_SIZE))) {
102 _exception(SIGSEGV, regs, code, address);
110 if (kernel_mode(regs))
118 regs->r15, regs->msr);
119 die("Weird page fault", regs, SIGSEGV);
122 if (user_mode(regs))
125 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
143 if (kernel_mode(regs) && !search_exception_tables(regs->pc))
174 /* get user regs even if this fault is in kernel mode */
175 struct pt_regs *uregs = current->thread.regs;
192 && (kernel_mode(regs) || !store_updates_sp(regs)))
220 fault = handle_mm_fault(vma, address, flags, regs);
222 if (fault_signal_pending(fault, regs))
266 if (user_mode(regs)) {
267 _exception(SIGSEGV, regs, code, address);
271 bad_page_fault(regs, address, SIGSEGV);
280 if (!user_mode(regs))
281 bad_page_fault(regs, address, SIGKILL);
288 if (user_mode(regs)) {
292 bad_page_fault(regs, address, SIGBUS);