#define X86_BUG(x)             (NCAPINTS*32 + (x))
 
 #define X86_BUG_F00F           X86_BUG(0) /* Intel F00F */
+#define X86_BUG_FDIV           X86_BUG(1) /* FPU FDIV */
 
 #if defined(__KERNEL__) && !defined(__ASSEMBLY__)
 
 
        /* Problems on some 486Dx4's and old 386's: */
        char                    hard_math;
        char                    rfu;
-       char                    fdiv_bug;
        char                    coma_bug;
        char                    pad0;
 #else
 
         * trap_init() enabled FXSR and company _before_ testing for FP
         * problems here.
         *
-        * Test for the divl bug..
+        * Test for the divl bug: http://en.wikipedia.org/wiki/Fdiv_bug
         */
        __asm__("fninit\n\t"
                "fldl %1\n\t"
 
        kernel_fpu_end();
 
-       boot_cpu_data.fdiv_bug = fdiv_bug;
-       if (boot_cpu_data.fdiv_bug)
+       if (fdiv_bug) {
+               set_cpu_bug(&boot_cpu_data, X86_BUG_FDIV);
                pr_warn("Hmm, FPU with FDIV bug\n");
+       }
 }
 
 /*
 
                   "fpu_exception\t: %s\n"
                   "cpuid level\t: %d\n"
                   "wp\t\t: %s\n",
-                  c->fdiv_bug ? "yes" : "no",
+                  static_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no",
                   static_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no",
                   c->coma_bug ? "yes" : "no",
                   c->hard_math ? "yes" : "no",
 
 /* cpu data as detected by the assembly code in head.S */
 struct cpuinfo_x86 new_cpu_data __cpuinitdata = {
        .wp_works_ok = -1,
-       .fdiv_bug = -1,
 };
 /* common cpu data for all cpus */
 struct cpuinfo_x86 boot_cpu_data __read_mostly = {
        .wp_works_ok = -1,
-       .fdiv_bug = -1,
 };
 EXPORT_SYMBOL(boot_cpu_data);