diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-06-25 01:20:01 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-06-25 01:20:01 +0000 |
commit | 3797ba0b62debb71af4606910acacc9896a9ae3b (patch) | |
tree | 414eea76253c7871bfdf3bd9d1817771eb40917c /include/asm-i386/bugs.h | |
parent | 2b6c0c580795a4404f72d2a794214dd9e080709d (diff) |
Merge with Linux 2.4.0-test2.
Diffstat (limited to 'include/asm-i386/bugs.h')
-rw-r--r-- | include/asm-i386/bugs.h | 19 |
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 } |