11da177e4SLinus Torvalds /* 249316cbfSRalf Baechle * This file is subject to the terms and conditions of the GNU General Public 349316cbfSRalf Baechle * License. See the file "COPYING" in the main directory of this archive 449316cbfSRalf Baechle * for more details. 549316cbfSRalf Baechle * 649316cbfSRalf Baechle * Copyright (C) 1997, 99, 2001 - 2004 Ralf Baechle <ralf@linux-mips.org> 71da177e4SLinus Torvalds */ 89f3b8081SPaul Gortmaker #include <linux/extable.h> 91da177e4SLinus Torvalds #include <linux/spinlock.h> 101da177e4SLinus Torvalds #include <asm/branch.h> 11*7c0f6ba6SLinus Torvalds #include <linux/uaccess.h> 121da177e4SLinus Torvalds fixup_exception(struct pt_regs * regs)131da177e4SLinus Torvaldsint fixup_exception(struct pt_regs *regs) 141da177e4SLinus Torvalds { 151da177e4SLinus Torvalds const struct exception_table_entry *fixup; 161da177e4SLinus Torvalds 171da177e4SLinus Torvalds fixup = search_exception_tables(exception_epc(regs)); 181da177e4SLinus Torvalds if (fixup) { 191da177e4SLinus Torvalds regs->cp0_epc = fixup->nextinsn; 201da177e4SLinus Torvalds 211da177e4SLinus Torvalds return 1; 221da177e4SLinus Torvalds } 231da177e4SLinus Torvalds 241da177e4SLinus Torvalds return 0; 251da177e4SLinus Torvalds } 26