diff options
-rw-r--r-- | arch/x86/mm/fault_64.c | 5 | ||||
-rw-r--r-- | include/asm-x86/uaccess_64.h | 2 |
2 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/mm/fault_64.c b/arch/x86/mm/fault_64.c index 121c7bda6297..3a94941578fa 100644 --- a/arch/x86/mm/fault_64.c +++ b/arch/x86/mm/fault_64.c | |||
@@ -298,7 +298,6 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, | |||
298 | struct mm_struct *mm; | 298 | struct mm_struct *mm; |
299 | struct vm_area_struct * vma; | 299 | struct vm_area_struct * vma; |
300 | unsigned long address; | 300 | unsigned long address; |
301 | const struct exception_table_entry *fixup; | ||
302 | int write, fault; | 301 | int write, fault; |
303 | unsigned long flags; | 302 | unsigned long flags; |
304 | siginfo_t info; | 303 | siginfo_t info; |
@@ -508,9 +507,7 @@ bad_area_nosemaphore: | |||
508 | no_context: | 507 | no_context: |
509 | 508 | ||
510 | /* Are we prepared to handle this kernel fault? */ | 509 | /* Are we prepared to handle this kernel fault? */ |
511 | fixup = search_exception_tables(regs->ip); | 510 | if (fixup_exception(regs)) { |
512 | if (fixup) { | ||
513 | regs->ip = fixup->fixup; | ||
514 | return; | 511 | return; |
515 | } | 512 | } |
516 | 513 | ||
diff --git a/include/asm-x86/uaccess_64.h b/include/asm-x86/uaccess_64.h index f4ce8768ad44..31d794702719 100644 --- a/include/asm-x86/uaccess_64.h +++ b/include/asm-x86/uaccess_64.h | |||
@@ -65,6 +65,8 @@ struct exception_table_entry | |||
65 | unsigned long insn, fixup; | 65 | unsigned long insn, fixup; |
66 | }; | 66 | }; |
67 | 67 | ||
68 | extern int fixup_exception(struct pt_regs *regs); | ||
69 | |||
68 | #define ARCH_HAS_SEARCH_EXTABLE | 70 | #define ARCH_HAS_SEARCH_EXTABLE |
69 | 71 | ||
70 | /* | 72 | /* |