x86/extable: Tidy up redundant handler functions
authorThomas Gleixner <tglx@linutronix.de>
Wed, 8 Sep 2021 13:29:12 +0000 (15:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Jul 2022 15:25:25 +0000 (17:25 +0200)
[ Upstream commit 326b567f82df0c4c8f50092b9af9a3014616fb3c ]

No need to have the same code all over the place.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20210908132524.963232825@linutronix.de
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/mm/extable.c

index e1664e9..d9a1046 100644 (file)
@@ -39,9 +39,8 @@ __visible bool ex_handler_fault(const struct exception_table_entry *fixup,
                                unsigned long error_code,
                                unsigned long fault_addr)
 {
-       regs->ip = ex_fixup_addr(fixup);
        regs->ax = trapnr;
-       return true;
+       return ex_handler_default(fixup, regs, trapnr, error_code, fault_addr);
 }
 EXPORT_SYMBOL_GPL(ex_handler_fault);
 
@@ -76,8 +75,7 @@ __visible bool ex_handler_uaccess(const struct exception_table_entry *fixup,
                                  unsigned long fault_addr)
 {
        WARN_ONCE(trapnr == X86_TRAP_GP, "General protection fault in user access. Non-canonical address?");
-       regs->ip = ex_fixup_addr(fixup);
-       return true;
+       return ex_handler_default(fixup, regs, trapnr, error_code, fault_addr);
 }
 EXPORT_SYMBOL(ex_handler_uaccess);
 
@@ -87,9 +85,7 @@ __visible bool ex_handler_copy(const struct exception_table_entry *fixup,
                               unsigned long fault_addr)
 {
        WARN_ONCE(trapnr == X86_TRAP_GP, "General protection fault in user access. Non-canonical address?");
-       regs->ip = ex_fixup_addr(fixup);
-       regs->ax = trapnr;
-       return true;
+       return ex_handler_fault(fixup, regs, trapnr, error_code, fault_addr);
 }
 EXPORT_SYMBOL(ex_handler_copy);
 
@@ -103,10 +99,9 @@ __visible bool ex_handler_rdmsr_unsafe(const struct exception_table_entry *fixup
                show_stack_regs(regs);
 
        /* Pretend that the read succeeded and returned 0. */
-       regs->ip = ex_fixup_addr(fixup);
        regs->ax = 0;
        regs->dx = 0;
-       return true;
+       return ex_handler_default(fixup, regs, trapnr, error_code, fault_addr);
 }
 EXPORT_SYMBOL(ex_handler_rdmsr_unsafe);
 
@@ -121,8 +116,7 @@ __visible bool ex_handler_wrmsr_unsafe(const struct exception_table_entry *fixup
                show_stack_regs(regs);
 
        /* Pretend that the write succeeded. */
-       regs->ip = ex_fixup_addr(fixup);
-       return true;
+       return ex_handler_default(fixup, regs, trapnr, error_code, fault_addr);
 }
 EXPORT_SYMBOL(ex_handler_wrmsr_unsafe);