14 #include <linux/module.h>
16 #include <linux/sched.h>
19 #include <asm/addrspace.h>
20 #include <asm/mmu_context.h>
23 #include <asm/traps.h>
29 static int die_counter;
36 str, err, ++die_counter);
43 #ifdef CONFIG_FRAME_POINTER
68 panic(
"Fatal exception in interrupt");
71 panic(
"Fatal exception");
90 die(
"Unhandled exception in kernel mode", regs, signr);
93 memset(&info, 0,
sizeof(info));
96 info.si_addr = (
void __user *)addr;
112 die(
"Fatal Non-Maskable Interrupt", regs,
SIGINT);
137 spin_lock_irq(&undef_lock);
139 spin_unlock_irq(&undef_lock);
144 spin_lock_irq(&undef_lock);
146 spin_unlock_irq(&undef_lock);
149 static int do_cop_absent(
u32 insn)
154 if ((insn & 0xfdf00000) == 0xf1900000)
158 cop_nr = (insn >> 13) & 0x7;
162 cpucr |= (1 << (24 + cop_nr));
166 if (!(cpucr & (1 << (24 + cop_nr))))
182 return opcode == AVR32_BUG_OPCODE;
220 spin_lock_irq(&undef_lock);
223 if (hook->
fn(regs, insn) == 0) {
224 spin_unlock_irq(&undef_lock);
229 spin_unlock_irq(&undef_lock);