summaryrefslogtreecommitdiffstats
path: root/include/asm-i386/bugs.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-06-25 01:20:01 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-06-25 01:20:01 +0000
commit3797ba0b62debb71af4606910acacc9896a9ae3b (patch)
tree414eea76253c7871bfdf3bd9d1817771eb40917c /include/asm-i386/bugs.h
parent2b6c0c580795a4404f72d2a794214dd9e080709d (diff)
Merge with Linux 2.4.0-test2.
Diffstat (limited to 'include/asm-i386/bugs.h')
-rw-r--r--include/asm-i386/bugs.h19
1 files changed, 10 insertions, 9 deletions
diff --git a/include/asm-i386/bugs.h b/include/asm-i386/bugs.h
index 80ba0d2e4..23460fcb6 100644
--- a/include/asm-i386/bugs.h
+++ b/include/asm-i386/bugs.h
@@ -22,6 +22,7 @@
#include <linux/config.h>
#include <asm/processor.h>
+#include <asm/i387.h>
#include <asm/msr.h>
static int __init no_halt(char *s)
@@ -49,7 +50,7 @@ static int __init no_387(char *s)
__setup("no387", no_387);
-static char fpu_error __initdata = 0;
+static char __initdata fpu_error = 0;
static void __init copro_timeout(void)
{
@@ -62,12 +63,12 @@ static void __init copro_timeout(void)
outb_p(0,0xf0);
}
-static double x __initdata = 4195835.0;
-static double y __initdata = 3145727.0;
+static double __initdata x = 4195835.0;
+static double __initdata y = 3145727.0;
#ifdef CONFIG_X86_XMM
-static float zero[4] __initdata = { 0.0, 0.0, 0.0, 0.0 };
-static float one[4] __initdata = { 1.0, 1.0, 1.0, 1.0 };
+static float __initdata zero[4] = { 0.0, 0.0, 0.0, 0.0 };
+static float __initdata one[4] = { 1.0, 1.0, 1.0, 1.0 };
#endif
static void __init check_fpu(void)
@@ -148,11 +149,11 @@ static void __init check_fpu(void)
else
printk("Hmm, FPU using exception 16 error reporting with FDIV bug.\n");
-#ifdef CONFIG_X86_FXSR
+#if defined(CONFIG_X86_FXSR) || defined(CONFIG_X86_RUNTIME_FXSR)
/*
* Verify that the FXSAVE/FXRSTOR data will be 16-byte aligned.
*/
- if (offsetof(struct task_struct, thread.i387.hard.fxsr_space[0]) & 15)
+ if (offsetof(struct task_struct, thread.i387.fxsave) & 15)
panic("Kernel compiled for PII/PIII+ with FXSR, data not 16-byte aligned!");
if (cpu_has_fxsr) {
@@ -168,14 +169,14 @@ static void __init check_fpu(void)
printk("done.\n");
/* Check if exception 19 works okay. */
- set_fpu_mxcsr(XMM_UNMASKED_MXCSR);
+ load_mxcsr(0x0000);
printk(KERN_INFO "Checking SIMD FPU exceptions... ");
__asm__("movups %0,%%xmm0\n\t"
"movups %1,%%xmm1\n\t"
"divps %%xmm0,%%xmm1\n\t"
: : "m" (*&zero), "m" (*&one));
printk("OK, SIMD FPU using exception 19 error reporting.\n");
- set_fpu_mxcsr(XMM_DEFAULT_MXCSR);
+ load_mxcsr(0x1f80);
}
#endif
}