patch_amd64errata.diff

Index: amd64/amd64/amd64errata.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/amd64errata.c,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 amd64errata.c
--- amd64/amd64/amd64errata.c    27 Mar 2012 05:59:46 -0000    1.3
+++ amd64/amd64/amd64errata.c    19 May 2013 23:48:11 -0000
@@ -293,6 +293,9 @@ amd64_errata(struct cpu_info *ci)
     int found = 0;
     int corrected = 0;

+    if (ci->ci_feature_eflags & CPUIDECX_RAZ)
+        return;
+
     CPUID(0x80000001, code, dummy, dummy, dummy);

     for (i = 0; ; i += 2) {
Index: amd64/amd64/identcpu.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/identcpu.c,v
retrieving revision 1.47
diff -u -p -u -p -r1.47 identcpu.c
--- amd64/amd64/identcpu.c    6 May 2013 04:32:12 -0000    1.47
+++ amd64/amd64/identcpu.c    19 May 2013 23:48:11 -0000
@@ -129,6 +129,7 @@ const struct {
     { CPUIDECX_AVX,        "AVX" },
     { CPUIDECX_F16C,    "F16C" },
     { CPUIDECX_RDRAND,    "RDRAND" },
+    { CPUIDECX_RAZ,        "RAZ" }
 }, cpu_ecpuid_ecxfeatures[] = {
     { CPUIDECX_LAHF,    "LAHF" },
     { CPUIDECX_CMPLEG,    "CMPLEG" },
Index: amd64/include/specialreg.h
===================================================================
RCS file: /cvs/src/sys/arch/amd64/include/specialreg.h,v
retrieving revision 1.25
diff -u -p -u -p -r1.25 specialreg.h
--- amd64/include/specialreg.h    6 May 2013 04:32:12 -0000    1.25
+++ amd64/include/specialreg.h    19 May 2013 23:48:11 -0000
@@ -158,6 +158,7 @@
 #define    CPUIDECX_AVX    0x10000000    /* Advanced Vector Extensions */
 #define    CPUIDECX_F16C    0x20000000    /* 16bit fp conversion  */
 #define    CPUIDECX_RDRAND    0x40000000    /* RDRAND instruction  */
+#define    CPUIDECX_RAZ    0x80000000    /* RAZ. Indicates guest state. */

 /*
  * "Structured Extended Feature Flags Parameters" (CPUID function 0x7,
leaf 0)

Reply via email to