1 /* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Copyright (C) 1997, 99, 2001 - 2004 Ralf Baechle <ralf@linux-mips.org> 7 */ 8 #include <linux/extable.h> 9 #include <linux/spinlock.h> 10 #include <asm/branch.h> 11 #include <linux/uaccess.h> 12 13 int fixup_exception(struct pt_regs *regs) 14 { 15 const struct exception_table_entry *fixup; 16 17 fixup = search_exception_tables(exception_epc(regs)); 18 if (fixup) { 19 regs->cp0_epc = fixup->nextinsn; 20 21 return 1; 22 } 23 24 return 0; 25 }