Lines Matching refs:regs
146 struct pt_regs *regs = (struct pt_regs *) (((void *)fp) in do_show_stack() local
149 if (regs->syscall_nr != -1) { in do_show_stack()
151 regs->syscall_nr); in do_show_stack()
153 pt_psp(regs), pt_elr(regs)); in do_show_stack()
159 ex_name(pt_cause(regs)), pt_cause(regs), in do_show_stack()
160 pt_badva(regs)); in do_show_stack()
163 newfp = (unsigned long *) regs->r30; in do_show_stack()
164 ip = pt_elr(regs); in do_show_stack()
187 int die(const char *str, struct pt_regs *regs, long err) in die() argument
204 if (notify_die(DIE_OOPS, str, regs, err, pt_cause(regs), SIGSEGV) == in die()
209 show_regs(regs); in die()
210 do_show_stack(current, ®s->r30, pt_elr(regs)); in die()
228 int die_if_kernel(char *str, struct pt_regs *regs, long err) in die_if_kernel() argument
230 if (!user_mode(regs)) in die_if_kernel()
231 return die(str, regs, err); in die_if_kernel()
239 static void misaligned_instruction(struct pt_regs *regs) in misaligned_instruction() argument
241 die_if_kernel("Misaligned Instruction", regs, 0); in misaligned_instruction()
250 static void misaligned_data_load(struct pt_regs *regs) in misaligned_data_load() argument
252 die_if_kernel("Misaligned Data Load", regs, 0); in misaligned_data_load()
256 static void misaligned_data_store(struct pt_regs *regs) in misaligned_data_store() argument
258 die_if_kernel("Misaligned Data Store", regs, 0); in misaligned_data_store()
262 static void illegal_instruction(struct pt_regs *regs) in illegal_instruction() argument
264 die_if_kernel("Illegal Instruction", regs, 0); in illegal_instruction()
272 static void precise_bus_error(struct pt_regs *regs) in precise_bus_error() argument
274 die_if_kernel("Precise Bus Error", regs, 0); in precise_bus_error()
283 static void cache_error(struct pt_regs *regs) in cache_error() argument
285 die("Cache Error", regs, 0); in cache_error()
291 void do_genex(struct pt_regs *regs) in do_genex() argument
296 switch (pt_cause(regs)) { in do_genex()
299 execute_protection_fault(regs); in do_genex()
303 read_protection_fault(regs); in do_genex()
307 write_protection_fault(regs); in do_genex()
310 misaligned_instruction(regs); in do_genex()
313 illegal_instruction(regs); in do_genex()
316 misaligned_instruction(regs); in do_genex()
319 misaligned_data_load(regs); in do_genex()
322 misaligned_data_store(regs); in do_genex()
326 illegal_instruction(regs); in do_genex()
329 precise_bus_error(regs); in do_genex()
332 cache_error(regs); in do_genex()
336 panic("Unrecognized exception 0x%lx\n", pt_cause(regs)); in do_genex()
348 void do_trap0(struct pt_regs *regs) in do_trap0() argument
352 switch (pt_cause(regs)) { in do_trap0()
358 tracehook_report_syscall_entry(regs))) in do_trap0()
374 regs->syscall_nr = regs->r06; in do_trap0()
382 regs->restart_r0 = regs->r00; in do_trap0()
384 if ((unsigned long) regs->syscall_nr >= __NR_syscalls) { in do_trap0()
385 regs->r00 = -1; in do_trap0()
388 (sys_call_table[regs->syscall_nr]); in do_trap0()
389 regs->r00 = syscall(regs->r00, regs->r01, in do_trap0()
390 regs->r02, regs->r03, in do_trap0()
391 regs->r04, regs->r05); in do_trap0()
396 tracehook_report_syscall_exit(regs, 0); in do_trap0()
401 if (user_mode(regs)) { in do_trap0()
410 (void __user *) pt_elr(regs)); in do_trap0()
413 kgdb_handle_exception(pt_cause(regs), SIGTRAP, in do_trap0()
414 TRAP_BRKPT, regs); in do_trap0()
425 void do_machcheck(struct pt_regs *regs) in do_machcheck() argument
435 void do_debug_exception(struct pt_regs *regs) in do_debug_exception() argument
437 regs->hvmer.vmest &= ~HVM_VMEST_CAUSE_MSK; in do_debug_exception()
438 regs->hvmer.vmest |= (TRAP_DEBUG << HVM_VMEST_CAUSE_SFT); in do_debug_exception()
439 do_trap0(regs); in do_debug_exception()