Lines Matching refs:regs

114 static void dump_instr(const char *lvl, struct pt_regs *regs)  in dump_instr()  argument
116 unsigned long addr = instruction_pointer(regs); in dump_instr()
146 static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk) in dump_backtrace() argument
150 pr_debug("%s(regs = %p tsk = %p)\n", __func__, regs, tsk); in dump_backtrace()
155 if (regs) { in dump_backtrace()
156 frame.fp = regs->regs[29]; in dump_backtrace()
157 frame.sp = regs->sp; in dump_backtrace()
158 frame.pc = regs->pc; in dump_backtrace()
203 struct pt_regs *regs) in __die() argument
213 ret = notify_die(DIE_OOPS, str, regs, err, 0, SIGSEGV); in __die()
218 __show_regs(regs); in __die()
222 if (!user_mode(regs) || in_interrupt()) { in __die()
223 dump_mem(KERN_EMERG, "Stack: ", regs->sp, in __die()
225 compat_user_mode(regs)); in __die()
226 dump_backtrace(regs, tsk); in __die()
227 dump_instr(KERN_EMERG, regs); in __die()
238 void die(const char *str, struct pt_regs *regs, int err) in die() argument
248 ret = __die(str, err, thread, regs); in die()
250 if (regs && kexec_should_crash(thread->task)) in die()
251 crash_kexec(regs); in die()
266 void arm64_notify_die(const char *str, struct pt_regs *regs, in arm64_notify_die() argument
269 if (user_mode(regs)) { in arm64_notify_die()
274 die(str, regs, err); in arm64_notify_die()
299 static int call_undef_hook(struct pt_regs *regs) in call_undef_hook() argument
304 int (*fn)(struct pt_regs *regs, u32 instr) = NULL; in call_undef_hook()
305 void __user *pc = (void __user *)instruction_pointer(regs); in call_undef_hook()
307 if (!user_mode(regs)) in call_undef_hook()
310 if (compat_thumb_mode(regs)) { in call_undef_hook()
333 (regs->pstate & hook->pstate_mask) == hook->pstate_val) in call_undef_hook()
338 return fn ? fn(regs, instr) : 1; in call_undef_hook()
341 asmlinkage void __exception do_undefinstr(struct pt_regs *regs) in do_undefinstr() argument
344 void __user *pc = (void __user *)instruction_pointer(regs); in do_undefinstr()
347 if (!aarch32_break_handler(regs)) in do_undefinstr()
350 if (call_undef_hook(regs) == 0) in do_undefinstr()
356 dump_instr(KERN_INFO, regs); in do_undefinstr()
364 arm64_notify_die("Oops - undefined instruction", regs, &info, 0); in do_undefinstr()
367 long compat_arm_syscall(struct pt_regs *regs);
369 asmlinkage long do_ni_syscall(struct pt_regs *regs) in do_ni_syscall() argument
374 ret = compat_arm_syscall(regs); in do_ni_syscall()
382 task_pid_nr(current), (int)regs->syscallno); in do_ni_syscall()
383 dump_instr("", regs); in do_ni_syscall()
384 if (user_mode(regs)) in do_ni_syscall()
385 __show_regs(regs); in do_ni_syscall()
439 asmlinkage void bad_mode(struct pt_regs *regs, int reason, unsigned int esr) in bad_mode() argument
442 void __user *pc = (void __user *)instruction_pointer(regs); in bad_mode()
447 __show_regs(regs); in bad_mode()
454 arm64_notify_die("Oops - bad mode", regs, &info, 0); in bad_mode()
491 static int bug_handler(struct pt_regs *regs, unsigned int esr) in bug_handler() argument
493 if (user_mode(regs)) in bug_handler()
496 switch (report_bug(regs->pc, regs)) { in bug_handler()
498 die("Oops - BUG", regs, 0); in bug_handler()
503 dump_backtrace(regs, NULL); in bug_handler()
512 regs->pc += AARCH64_INSN_SIZE; /* skip BRK and resume */ in bug_handler()
527 struct pt_regs *regs) in early_brk64() argument
529 return bug_handler(regs, esr) != DBG_HOOK_HANDLED; in early_brk64()