diff options
author | Brian Gerst <[email protected]> | 2010-09-03 21:17:15 -0400 |
---|---|---|
committer | H. Peter Anvin <[email protected]> | 2010-09-09 14:17:11 -0700 |
commit | a334fe43d85f570ae907acf988a053c5eff78d6e (patch) | |
tree | 1b340dd16173ce9e74aa369d83daea27bac961d3 | |
parent | 820241356d6aa9a895fc10def15794a5a5bfcd98 (diff) |
x86-32, fpu: Remove math_emulate stub
check_fpu() in bugs.c halts boot if no FPU is found and math emulation
isn't enabled. Therefore this stub will never be used.
Signed-off-by: Brian Gerst <[email protected]>
Acked-by: Pekka Enberg <[email protected]>
Cc: Suresh Siddha <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: H. Peter Anvin <[email protected]>
-rw-r--r-- | arch/x86/kernel/traps.c | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index d0029eb58589..d43968503dd2 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -776,21 +776,10 @@ asmlinkage void math_state_restore(void) } EXPORT_SYMBOL_GPL(math_state_restore); -#ifndef CONFIG_MATH_EMULATION -void math_emulate(struct math_emu_info *info) -{ - printk(KERN_EMERG - "math-emulation not enabled and no coprocessor found.\n"); - printk(KERN_EMERG "killing %s.\n", current->comm); - force_sig(SIGFPE, current); - schedule(); -} -#endif /* CONFIG_MATH_EMULATION */ - dotraplinkage void __kprobes do_device_not_available(struct pt_regs *regs, long error_code) { -#ifdef CONFIG_X86_32 +#ifdef CONFIG_MATH_EMULATION if (read_cr0() & X86_CR0_EM) { struct math_emu_info info = { }; @@ -798,12 +787,12 @@ do_device_not_available(struct pt_regs *regs, long error_code) info.regs = regs; math_emulate(&info); - } else { - math_state_restore(); /* interrupts still off */ - conditional_sti(regs); + return; } -#else - math_state_restore(); +#endif + math_state_restore(); /* interrupts still off */ +#ifdef CONFIG_X86_32 + conditional_sti(regs); #endif } |