2005-04-17 06:20:36 +08:00
|
|
|
/*
|
2009-07-06 16:13:17 +08:00
|
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
|
|
* for more details.
|
|
|
|
*
|
|
|
|
* Copyright (C) 1997, 99, 2001 - 2004 Ralf Baechle <ralf@linux-mips.org>
|
2005-04-17 06:20:36 +08:00
|
|
|
*/
|
2016-08-16 07:11:52 +08:00
|
|
|
#include <linux/extable.h>
|
2005-04-17 06:20:36 +08:00
|
|
|
#include <linux/spinlock.h>
|
|
|
|
#include <asm/branch.h>
|
2016-12-25 03:46:01 +08:00
|
|
|
#include <linux/uaccess.h>
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
int fixup_exception(struct pt_regs *regs)
|
|
|
|
{
|
|
|
|
const struct exception_table_entry *fixup;
|
|
|
|
|
|
|
|
fixup = search_exception_tables(exception_epc(regs));
|
|
|
|
if (fixup) {
|
|
|
|
regs->cp0_epc = fixup->nextinsn;
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|