diff options
author | Harvey Harrison <harvey.harrison@gmail.com> | 2008-01-30 13:31:41 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:31:41 +0100 |
commit | 6d48583ba9ade609634e694fc35ea62b7a8adaaa (patch) | |
tree | bc6e3bec5359b9136a8e53a9dbe80d71f9795f6b /arch/x86/mm/extable_32.c | |
parent | 46265df040533f57c191bb2b019d6b25c3bf1f34 (diff) | |
download | talos-op-linux-6d48583ba9ade609634e694fc35ea62b7a8adaaa.tar.gz talos-op-linux-6d48583ba9ade609634e694fc35ea62b7a8adaaa.zip |
x86: unify extable_{32|64}.c
Introduce fixup_exception() on 64-bit and use it in kprobes to
eliminate an #ifdef.
Only 64-bit needs search_extable() due to a stepping bug.
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/mm/extable_32.c')
-rw-r--r-- | arch/x86/mm/extable_32.c | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/arch/x86/mm/extable_32.c b/arch/x86/mm/extable_32.c deleted file mode 100644 index 41685461f8b2..000000000000 --- a/arch/x86/mm/extable_32.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * linux/arch/i386/mm/extable.c - */ - -#include <linux/module.h> -#include <linux/spinlock.h> -#include <asm/uaccess.h> - -int fixup_exception(struct pt_regs *regs) -{ - const struct exception_table_entry *fixup; - -#ifdef CONFIG_PNPBIOS - if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) - { - extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp; - extern u32 pnp_bios_is_utter_crap; - pnp_bios_is_utter_crap = 1; - printk(KERN_CRIT "PNPBIOS fault.. attempting recovery.\n"); - __asm__ volatile( - "movl %0, %%esp\n\t" - "jmp *%1\n\t" - : : "g" (pnp_bios_fault_esp), "g" (pnp_bios_fault_eip)); - panic("do_trap: can't hit this"); - } -#endif - - fixup = search_exception_tables(regs->ip); - if (fixup) { - regs->ip = fixup->fixup; - return 1; - } - - return 0; -} |