Lines Matching refs:regs

46 static int store_updates_sp(struct pt_regs *regs)  in store_updates_sp()  argument
50 if (get_user(inst, (unsigned int __user *)regs->pc)) in store_updates_sp()
67 void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig) in bad_page_fault() argument
72 fixup = search_exception_tables(regs->pc); in bad_page_fault()
74 regs->pc = fixup->fixup; in bad_page_fault()
79 die("kernel access of bad area", regs, sig); in bad_page_fault()
86 void do_page_fault(struct pt_regs *regs, unsigned long address, in do_page_fault() argument
97 regs->ear = address; in do_page_fault()
98 regs->esr = error_code; in do_page_fault()
101 if (unlikely(kernel_mode(regs) && (address >= TASK_SIZE))) { in do_page_fault()
103 _exception(SIGSEGV, regs, code, address); in do_page_fault()
111 if (kernel_mode(regs)) in do_page_fault()
119 regs->r15, regs->msr); in do_page_fault()
120 die("Weird page fault", regs, SIGSEGV); in do_page_fault()
123 if (user_mode(regs)) in do_page_fault()
142 if (kernel_mode(regs) && !search_exception_tables(regs->pc)) in do_page_fault()
174 struct pt_regs *uregs = current->thread.regs; in do_page_fault()
191 && (kernel_mode(regs) || !store_updates_sp(regs))) in do_page_fault()
270 if (user_mode(regs)) { in do_page_fault()
271 _exception(SIGSEGV, regs, code, address); in do_page_fault()
280 bad_page_fault(regs, address, SIGSEGV); in do_page_fault()
289 if (!user_mode(regs)) in do_page_fault()
290 bad_page_fault(regs, address, SIGKILL); in do_page_fault()
297 if (user_mode(regs)) { in do_page_fault()
305 bad_page_fault(regs, address, SIGBUS); in do_page_fault()