xref: /openbmc/linux/arch/sh/mm/extable_32.c (revision 83ce3ac1d13f9a3ae83485a5e5a1cb85faf865ff)
1*83ce3ac1SPaul Mundt /*
2*83ce3ac1SPaul Mundt  * linux/arch/sh/mm/extable.c
3*83ce3ac1SPaul Mundt  *  Taken from:
4*83ce3ac1SPaul Mundt  *   linux/arch/i386/mm/extable.c
5*83ce3ac1SPaul Mundt  */
6*83ce3ac1SPaul Mundt 
7*83ce3ac1SPaul Mundt #include <linux/module.h>
8*83ce3ac1SPaul Mundt #include <asm/uaccess.h>
9*83ce3ac1SPaul Mundt 
10*83ce3ac1SPaul Mundt int fixup_exception(struct pt_regs *regs)
11*83ce3ac1SPaul Mundt {
12*83ce3ac1SPaul Mundt 	const struct exception_table_entry *fixup;
13*83ce3ac1SPaul Mundt 
14*83ce3ac1SPaul Mundt 	fixup = search_exception_tables(regs->pc);
15*83ce3ac1SPaul Mundt 	if (fixup) {
16*83ce3ac1SPaul Mundt 		regs->pc = fixup->fixup;
17*83ce3ac1SPaul Mundt 		return 1;
18*83ce3ac1SPaul Mundt 	}
19*83ce3ac1SPaul Mundt 
20*83ce3ac1SPaul Mundt 	return 0;
21*83ce3ac1SPaul Mundt }
22