Lines Matching +full:addr +full:- +full:mode
4 * Copyright (C) 2008-2009 Michal Simek <monstr@monstr.eu>
13 * This file handles the architecture-dependent parts of hardware exceptions
56 _exception(SIGTRAP, regs, TRAP_BRKPT, regs->r16); in sw_exception()
57 flush_dcache_range(regs->r16, regs->r16 + 0x4); in sw_exception()
58 flush_icache_range(regs->r16, regs->r16 + 0x4); in sw_exception()
61 void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr) in _exception() argument
64 die("Exception in kernel mode", regs, signr); in _exception()
66 force_sig_fault(signr, code, (void __user *)addr); in _exception()
70 int fsr, int addr) in full_exception() argument
73 addr = regs->pc; in full_exception()
77 pr_warn("Exception %02x in %s mode, FSR=%08x PC=%08x ESR=%08x\n", in full_exception()
79 (unsigned int) regs->pc, (unsigned int) regs->esr); in full_exception()
85 pr_debug("Illegal opcode exception in user mode\n"); in full_exception()
86 _exception(SIGILL, regs, ILL_ILLOPC, addr); in full_exception()
89 pr_warn("Illegal opcode exception in kernel mode.\n"); in full_exception()
94 pr_debug("Instruction bus error exception in user mode\n"); in full_exception()
95 _exception(SIGBUS, regs, BUS_ADRERR, addr); in full_exception()
98 pr_warn("Instruction bus error exception in kernel mode.\n"); in full_exception()
103 pr_debug("Data bus error exception in user mode\n"); in full_exception()
104 _exception(SIGBUS, regs, BUS_ADRERR, addr); in full_exception()
107 pr_warn("Data bus error exception in kernel mode.\n"); in full_exception()
112 pr_debug("Divide by zero exception in user mode\n"); in full_exception()
113 _exception(SIGFPE, regs, FPE_INTDIV, addr); in full_exception()
116 pr_warn("Divide by zero exception in kernel mode.\n"); in full_exception()
133 _exception(SIGFPE, regs, fsr, addr); in full_exception()
139 _exception(SIGILL, regs, ILL_PRVOPC, addr); in full_exception()
144 pr_warn("Unexpected exception %02x PC=%08x in %s mode\n", in full_exception()
145 type, (unsigned int) addr, in full_exception()