x86, cpu: Convert Cyrix coma bug detection
authorBorislav Petkov <bp@suse.de>
Wed, 20 Mar 2013 14:07:26 +0000 (15:07 +0100)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 2 Apr 2013 17:12:54 +0000 (10:12 -0700)
... to the new facility.

Signed-off-by: Borislav Petkov <bp@suse.de>
Link: http://lkml.kernel.org/r/1363788448-31325-5-git-send-email-bp@alien8.de
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/include/asm/cpufeature.h
arch/x86/include/asm/processor.h
arch/x86/kernel/cpu/cyrix.c
arch/x86/kernel/cpu/proc.c

index 25eb948..a2b65c1 100644 (file)
 
 #define X86_BUG_F00F           X86_BUG(0) /* Intel F00F */
 #define X86_BUG_FDIV           X86_BUG(1) /* FPU FDIV */
+#define X86_BUG_COMA           X86_BUG(2) /* Cyrix 6x86 coma */
 
 #if defined(__KERNEL__) && !defined(__ASSEMBLY__)
 
index ea22dfa..4e2fa28 100644 (file)
@@ -91,7 +91,6 @@ struct cpuinfo_x86 {
        /* Problems on some 486Dx4's and old 386's: */
        char                    hard_math;
        char                    rfu;
-       char                    coma_bug;
        char                    pad0;
 #else
        /* Number of 4K pages in DTLB/ITLB combined(in pages): */
index 4fbd384..d048d5c 100644 (file)
@@ -249,7 +249,7 @@ static void __cpuinit init_cyrix(struct cpuinfo_x86 *c)
                /* Emulate MTRRs using Cyrix's ARRs. */
                set_cpu_cap(c, X86_FEATURE_CYRIX_ARR);
                /* 6x86's contain this bug */
-               c->coma_bug = 1;
+               set_cpu_bug(c, X86_BUG_COMA);
                break;
 
        case 4: /* MediaGX/GXm or Geode GXM/GXLV/GX1 */
@@ -317,7 +317,8 @@ static void __cpuinit init_cyrix(struct cpuinfo_x86 *c)
                        /* Enable MMX extensions (App note 108) */
                        setCx86_old(CX86_CCR7, getCx86_old(CX86_CCR7)|1);
                } else {
-                       c->coma_bug = 1;      /* 6x86MX, it has the bug. */
+                       /* A 6x86MX - it has the bug. */
+                       set_cpu_bug(c, X86_BUG_COMA);
                }
                tmp = (!(dir0_lsn & 7) || dir0_lsn & 1) ? 2 : 0;
                Cx86_cb[tmp] = cyrix_model_mult2[dir0_lsn & 7];
index 5dfb6c6..37a198b 100644 (file)
@@ -36,7 +36,7 @@ static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
                   "wp\t\t: %s\n",
                   static_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no",
                   static_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no",
-                  c->coma_bug ? "yes" : "no",
+                  static_cpu_has_bug(X86_BUG_COMA) ? "yes" : "no",
                   c->hard_math ? "yes" : "no",
                   c->hard_math ? "yes" : "no",
                   c->cpuid_level,