1/* 2 * linux/arch/arm26/mm/extable.c 3 */ 4 5#include <linux/module.h> 6#include <asm/uaccess.h> 7 8int fixup_exception(struct pt_regs *regs) 9{ 10 const struct exception_table_entry *fixup; 11 12 fixup = search_exception_tables(instruction_pointer(regs)); 13 14 /* 15 * The kernel runs in SVC mode - make sure we keep running in SVC mode 16 * by frobbing the PSR appropriately (PSR and PC are in the same reg. 17 * on ARM26) 18 */ 19 if (fixup) 20 regs->ARM_pc = fixup->fixup | PSR_I_BIT | MODE_SVC26; 21 22 return fixup != NULL; 23} 24