1*d2912cb1SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only 243697cb0SVineet Gupta /* 343697cb0SVineet Gupta * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 443697cb0SVineet Gupta * 543697cb0SVineet Gupta * Borrowed heavily from MIPS 643697cb0SVineet Gupta */ 743697cb0SVineet Gupta 89ce6dbe8SPaul Gortmaker #include <linux/export.h> 99ce6dbe8SPaul Gortmaker #include <linux/extable.h> 1043697cb0SVineet Gupta #include <linux/uaccess.h> 1143697cb0SVineet Gupta fixup_exception(struct pt_regs * regs)1243697cb0SVineet Guptaint fixup_exception(struct pt_regs *regs) 1343697cb0SVineet Gupta { 1443697cb0SVineet Gupta const struct exception_table_entry *fixup; 1543697cb0SVineet Gupta 1643697cb0SVineet Gupta fixup = search_exception_tables(instruction_pointer(regs)); 1743697cb0SVineet Gupta if (fixup) { 1843697cb0SVineet Gupta regs->ret = fixup->fixup; 1943697cb0SVineet Gupta 2043697cb0SVineet Gupta return 1; 2143697cb0SVineet Gupta } 2243697cb0SVineet Gupta 2343697cb0SVineet Gupta return 0; 2443697cb0SVineet Gupta } 25