Lines Matching refs:regs
159 struct pt_regs *regs = (struct pt_regs *) (((void *)fp) in do_show_stack() local
162 if (regs->syscall_nr != -1) { in do_show_stack()
164 regs->syscall_nr); in do_show_stack()
166 pt_psp(regs), pt_elr(regs)); in do_show_stack()
172 ex_name(pt_cause(regs)), pt_cause(regs), in do_show_stack()
173 pt_badva(regs)); in do_show_stack()
176 newfp = (unsigned long *) regs->r30; in do_show_stack()
177 ip = pt_elr(regs); in do_show_stack()
200 int die(const char *str, struct pt_regs *regs, long err) in die() argument
217 if (notify_die(DIE_OOPS, str, regs, err, pt_cause(regs), SIGSEGV) == in die()
222 show_regs(regs); in die()
223 do_show_stack(current, ®s->r30, pt_elr(regs)); in die()
241 int die_if_kernel(char *str, struct pt_regs *regs, long err) in die_if_kernel() argument
243 if (!user_mode(regs)) in die_if_kernel()
244 return die(str, regs, err); in die_if_kernel()
252 static void misaligned_instruction(struct pt_regs *regs) in misaligned_instruction() argument
254 die_if_kernel("Misaligned Instruction", regs, 0); in misaligned_instruction()
263 static void misaligned_data_load(struct pt_regs *regs) in misaligned_data_load() argument
265 die_if_kernel("Misaligned Data Load", regs, 0); in misaligned_data_load()
269 static void misaligned_data_store(struct pt_regs *regs) in misaligned_data_store() argument
271 die_if_kernel("Misaligned Data Store", regs, 0); in misaligned_data_store()
275 static void illegal_instruction(struct pt_regs *regs) in illegal_instruction() argument
277 die_if_kernel("Illegal Instruction", regs, 0); in illegal_instruction()
285 static void precise_bus_error(struct pt_regs *regs) in precise_bus_error() argument
287 die_if_kernel("Precise Bus Error", regs, 0); in precise_bus_error()
296 static void cache_error(struct pt_regs *regs) in cache_error() argument
298 die("Cache Error", regs, 0); in cache_error()
304 void do_genex(struct pt_regs *regs) in do_genex() argument
309 switch (pt_cause(regs)) { in do_genex()
312 execute_protection_fault(regs); in do_genex()
316 read_protection_fault(regs); in do_genex()
320 write_protection_fault(regs); in do_genex()
323 misaligned_instruction(regs); in do_genex()
326 illegal_instruction(regs); in do_genex()
329 misaligned_instruction(regs); in do_genex()
332 misaligned_data_load(regs); in do_genex()
335 misaligned_data_store(regs); in do_genex()
339 illegal_instruction(regs); in do_genex()
342 precise_bus_error(regs); in do_genex()
345 cache_error(regs); in do_genex()
349 panic("Unrecognized exception 0x%lx\n", pt_cause(regs)); in do_genex()
361 void do_trap0(struct pt_regs *regs) in do_trap0() argument
365 switch (pt_cause(regs)) { in do_trap0()
371 tracehook_report_syscall_entry(regs))) in do_trap0()
387 regs->syscall_nr = regs->r06; in do_trap0()
395 regs->restart_r0 = regs->r00; in do_trap0()
397 if ((unsigned long) regs->syscall_nr >= __NR_syscalls) { in do_trap0()
398 regs->r00 = -1; in do_trap0()
401 (sys_call_table[regs->syscall_nr]); in do_trap0()
402 regs->r00 = syscall(regs->r00, regs->r01, in do_trap0()
403 regs->r02, regs->r03, in do_trap0()
404 regs->r04, regs->r05); in do_trap0()
409 tracehook_report_syscall_exit(regs, 0); in do_trap0()
414 if (user_mode(regs)) { in do_trap0()
423 (void __user *) pt_elr(regs), current); in do_trap0()
426 kgdb_handle_exception(pt_cause(regs), SIGTRAP, in do_trap0()
427 TRAP_BRKPT, regs); in do_trap0()
438 void do_machcheck(struct pt_regs *regs) in do_machcheck() argument
448 void do_debug_exception(struct pt_regs *regs) in do_debug_exception() argument
450 regs->hvmer.vmest &= ~HVM_VMEST_CAUSE_MSK; in do_debug_exception()
451 regs->hvmer.vmest |= (TRAP_DEBUG << HVM_VMEST_CAUSE_SFT); in do_debug_exception()
452 do_trap0(regs); in do_debug_exception()