diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-02-13 09:34:07 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-02-13 09:34:07 +0100 |
commit | e9c4ffb11f0b19005b5b9dc8481687a3637e5887 (patch) | |
tree | 7007f2ff846b9b057c5cd7c25e8b82e49f9b4b63 /arch/x86/kernel/traps.c | |
parent | 4bcf349a0f90d1e69eb35c6df0fa285c886c1cd6 (diff) | |
parent | 071a0bc2ceace31266836801510879407a3701fa (diff) | |
download | linux-e9c4ffb11f0b19005b5b9dc8481687a3637e5887.tar.bz2 |
Merge branch 'linus' into perfcounters/core
Conflicts:
arch/x86/kernel/acpi/boot.c
Diffstat (limited to 'arch/x86/kernel/traps.c')
-rw-r--r-- | arch/x86/kernel/traps.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index d36a502d87ab..17483fe98e9c 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -895,7 +895,7 @@ asmlinkage void math_state_restore(void) EXPORT_SYMBOL_GPL(math_state_restore); #ifndef CONFIG_MATH_EMULATION -asmlinkage void math_emulate(long arg) +void math_emulate(struct math_emu_info *info) { printk(KERN_EMERG "math-emulation not enabled and no coprocessor found.\n"); @@ -905,16 +905,19 @@ asmlinkage void math_emulate(long arg) } #endif /* CONFIG_MATH_EMULATION */ -dotraplinkage void __kprobes -do_device_not_available(struct pt_regs *regs, long error) +dotraplinkage void __kprobes do_device_not_available(struct pt_regs regs) { #ifdef CONFIG_X86_32 if (read_cr0() & X86_CR0_EM) { - conditional_sti(regs); - math_emulate(0); + struct math_emu_info info = { }; + + conditional_sti(®s); + + info.regs = ®s; + math_emulate(&info); } else { math_state_restore(); /* interrupts still off */ - conditional_sti(regs); + conditional_sti(®s); } #else math_state_restore(); |