Lines Matching refs:regs
157 struct pt_regs *regs = (struct pt_regs *) (((void *)fp) in do_show_stack() local
160 if (regs->syscall_nr != -1) { in do_show_stack()
162 regs->syscall_nr); in do_show_stack()
164 pt_psp(regs), pt_elr(regs)); in do_show_stack()
170 ex_name(pt_cause(regs)), pt_cause(regs), in do_show_stack()
171 pt_badva(regs)); in do_show_stack()
174 newfp = (unsigned long *) regs->r30; in do_show_stack()
175 ip = pt_elr(regs); in do_show_stack()
198 int die(const char *str, struct pt_regs *regs, long err) in die() argument
215 if (notify_die(DIE_OOPS, str, regs, err, pt_cause(regs), SIGSEGV) == in die()
220 show_regs(regs); in die()
221 do_show_stack(current, ®s->r30, pt_elr(regs)); in die()
239 int die_if_kernel(char *str, struct pt_regs *regs, long err) in die_if_kernel() argument
241 if (!user_mode(regs)) in die_if_kernel()
242 return die(str, regs, err); in die_if_kernel()
250 static void misaligned_instruction(struct pt_regs *regs) in misaligned_instruction() argument
252 die_if_kernel("Misaligned Instruction", regs, 0); in misaligned_instruction()
261 static void misaligned_data_load(struct pt_regs *regs) in misaligned_data_load() argument
263 die_if_kernel("Misaligned Data Load", regs, 0); in misaligned_data_load()
267 static void misaligned_data_store(struct pt_regs *regs) in misaligned_data_store() argument
269 die_if_kernel("Misaligned Data Store", regs, 0); in misaligned_data_store()
273 static void illegal_instruction(struct pt_regs *regs) in illegal_instruction() argument
275 die_if_kernel("Illegal Instruction", regs, 0); in illegal_instruction()
283 static void precise_bus_error(struct pt_regs *regs) in precise_bus_error() argument
285 die_if_kernel("Precise Bus Error", regs, 0); in precise_bus_error()
294 static void cache_error(struct pt_regs *regs) in cache_error() argument
296 die("Cache Error", regs, 0); in cache_error()
302 void do_genex(struct pt_regs *regs) in do_genex() argument
307 switch (pt_cause(regs)) { in do_genex()
310 execute_protection_fault(regs); in do_genex()
314 read_protection_fault(regs); in do_genex()
318 write_protection_fault(regs); in do_genex()
321 misaligned_instruction(regs); in do_genex()
324 illegal_instruction(regs); in do_genex()
327 misaligned_instruction(regs); in do_genex()
330 misaligned_data_load(regs); in do_genex()
333 misaligned_data_store(regs); in do_genex()
337 illegal_instruction(regs); in do_genex()
340 precise_bus_error(regs); in do_genex()
343 cache_error(regs); in do_genex()
347 panic("Unrecognized exception 0x%lx\n", pt_cause(regs)); in do_genex()
359 void do_trap0(struct pt_regs *regs) in do_trap0() argument
363 switch (pt_cause(regs)) { in do_trap0()
369 tracehook_report_syscall_entry(regs))) in do_trap0()
385 regs->syscall_nr = regs->r06; in do_trap0()
393 regs->restart_r0 = regs->r00; in do_trap0()
395 if ((unsigned long) regs->syscall_nr >= __NR_syscalls) { in do_trap0()
396 regs->r00 = -1; in do_trap0()
399 (sys_call_table[regs->syscall_nr]); in do_trap0()
400 regs->r00 = syscall(regs->r00, regs->r01, in do_trap0()
401 regs->r02, regs->r03, in do_trap0()
402 regs->r04, regs->r05); in do_trap0()
407 tracehook_report_syscall_exit(regs, 0); in do_trap0()
412 if (user_mode(regs)) { in do_trap0()
425 info.si_addr = (void __user *) pt_elr(regs); in do_trap0()
429 kgdb_handle_exception(pt_cause(regs), SIGTRAP, in do_trap0()
430 TRAP_BRKPT, regs); in do_trap0()
441 void do_machcheck(struct pt_regs *regs) in do_machcheck() argument
451 void do_debug_exception(struct pt_regs *regs) in do_debug_exception() argument
453 regs->hvmer.vmest &= ~HVM_VMEST_CAUSE_MSK; in do_debug_exception()
454 regs->hvmer.vmest |= (TRAP_DEBUG << HVM_VMEST_CAUSE_SFT); in do_debug_exception()
455 do_trap0(regs); in do_debug_exception()