| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
| Ralf Baechle | 49316cb | 2009-07-06 09:13:17 +0100 | [diff] [blame] | 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> | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 7 |  */ | 
 | 8 | #include <linux/module.h> | 
 | 9 | #include <linux/spinlock.h> | 
 | 10 | #include <asm/branch.h> | 
 | 11 | #include <asm/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 | } |