diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2012-12-17 14:26:31 -0500 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2012-12-17 14:42:40 -0500 |
commit | bc3eba60682750dd7b45ea616d65c926fc3b8be8 (patch) | |
tree | 19df6b9254b6d4d0aa575d06fe018fc12c9727d1 /arch/x86/kernel/irqinit.c | |
parent | 11af32b69ef7ee64c7d8848cad71a6f3749d9e37 (diff) |
x86, 386 removal: Remove support for IRQ 13 FPU error reporting
Remove support for FPU error reporting via IRQ 13, as opposed to
exception 16 (#MF). One last remnant of i386 gone.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Alan Cox <alan@linux.intel.com>
Diffstat (limited to 'arch/x86/kernel/irqinit.c')
-rw-r--r-- | arch/x86/kernel/irqinit.c | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/arch/x86/kernel/irqinit.c b/arch/x86/kernel/irqinit.c index 6e03b0d69138..7dc4e459c2b3 100644 --- a/arch/x86/kernel/irqinit.c +++ b/arch/x86/kernel/irqinit.c | |||
@@ -42,39 +42,6 @@ | |||
42 | * (these are usually mapped into the 0x30-0xff vector range) | 42 | * (these are usually mapped into the 0x30-0xff vector range) |
43 | */ | 43 | */ |
44 | 44 | ||
45 | #ifdef CONFIG_X86_32 | ||
46 | /* | ||
47 | * Note that on a 486, we don't want to do a SIGFPE on an irq13 | ||
48 | * as the irq is unreliable, and exception 16 works correctly | ||
49 | * (ie as explained in the intel literature). On a 386, you | ||
50 | * can't use exception 16 due to bad IBM design, so we have to | ||
51 | * rely on the less exact irq13. | ||
52 | * | ||
53 | * Careful.. Not only is IRQ13 unreliable, but it is also | ||
54 | * leads to races. IBM designers who came up with it should | ||
55 | * be shot. | ||
56 | */ | ||
57 | |||
58 | static irqreturn_t math_error_irq(int cpl, void *dev_id) | ||
59 | { | ||
60 | outb(0, 0xF0); | ||
61 | if (ignore_fpu_irq || !boot_cpu_data.hard_math) | ||
62 | return IRQ_NONE; | ||
63 | math_error(get_irq_regs(), 0, X86_TRAP_MF); | ||
64 | return IRQ_HANDLED; | ||
65 | } | ||
66 | |||
67 | /* | ||
68 | * New motherboards sometimes make IRQ 13 be a PCI interrupt, | ||
69 | * so allow interrupt sharing. | ||
70 | */ | ||
71 | static struct irqaction fpu_irq = { | ||
72 | .handler = math_error_irq, | ||
73 | .name = "fpu", | ||
74 | .flags = IRQF_NO_THREAD, | ||
75 | }; | ||
76 | #endif | ||
77 | |||
78 | /* | 45 | /* |
79 | * IRQ2 is cascade interrupt to second interrupt controller | 46 | * IRQ2 is cascade interrupt to second interrupt controller |
80 | */ | 47 | */ |
@@ -242,13 +209,6 @@ void __init native_init_IRQ(void) | |||
242 | setup_irq(2, &irq2); | 209 | setup_irq(2, &irq2); |
243 | 210 | ||
244 | #ifdef CONFIG_X86_32 | 211 | #ifdef CONFIG_X86_32 |
245 | /* | ||
246 | * External FPU? Set up irq13 if so, for | ||
247 | * original braindamaged IBM FERR coupling. | ||
248 | */ | ||
249 | if (boot_cpu_data.hard_math && !cpu_has_fpu) | ||
250 | setup_irq(FPU_IRQ, &fpu_irq); | ||
251 | |||
252 | irq_ctx_init(smp_processor_id()); | 212 | irq_ctx_init(smp_processor_id()); |
253 | #endif | 213 | #endif |
254 | } | 214 | } |