extable.c (e8c328d7de03bf4d7a18e38ff87a7c12fdf8afb1) | extable.c (5d0e79051425a6607959e2ab918ef3068cce07f0) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Based on arch/arm/mm/extable.c 4 */ 5 6#include <linux/extable.h> 7#include <linux/uaccess.h> 8 9bool fixup_exception(struct pt_regs *regs) 10{ | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Based on arch/arm/mm/extable.c 4 */ 5 6#include <linux/extable.h> 7#include <linux/uaccess.h> 8 9bool fixup_exception(struct pt_regs *regs) 10{ |
11 const struct exception_table_entry *fixup; | 11 const struct exception_table_entry *ex; |
12 | 12 |
13 fixup = search_exception_tables(instruction_pointer(regs)); 14 if (!fixup) | 13 ex = search_exception_tables(instruction_pointer(regs)); 14 if (!ex) |
15 return false; 16 17 if (in_bpf_jit(regs)) | 15 return false; 16 17 if (in_bpf_jit(regs)) |
18 return arm64_bpf_fixup_exception(fixup, regs); | 18 return arm64_bpf_fixup_exception(ex, regs); |
19 | 19 |
20 regs->pc = (unsigned long)&fixup->fixup + fixup->fixup; | 20 regs->pc = (unsigned long)&ex->fixup + ex->fixup; |
21 return true; 22} | 21 return true; 22} |