|
@@ -50,6 +50,8 @@ static double __initdata y = 3145727.0;
|
|
|
*/
|
|
|
static void __init check_fpu(void)
|
|
|
{
|
|
|
+ s32 fdiv_bug;
|
|
|
+
|
|
|
if (!boot_cpu_data.hard_math) {
|
|
|
#ifndef CONFIG_MATH_EMULATION
|
|
|
printk(KERN_EMERG "No coprocessor found and no math emulation present.\n");
|
|
@@ -74,8 +76,10 @@ static void __init check_fpu(void)
|
|
|
"fistpl %0\n\t"
|
|
|
"fwait\n\t"
|
|
|
"fninit"
|
|
|
- : "=m" (*&boot_cpu_data.fdiv_bug)
|
|
|
+ : "=m" (*&fdiv_bug)
|
|
|
: "m" (*&x), "m" (*&y));
|
|
|
+
|
|
|
+ boot_cpu_data.fdiv_bug = fdiv_bug;
|
|
|
if (boot_cpu_data.fdiv_bug)
|
|
|
printk("Hmm, FPU with FDIV bug.\n");
|
|
|
}
|