diff usr/src/uts/i86pc/os/cpuid.c @ 6317:8afb524fc268

6667600 Incomplete initialization of cpi_cacheinfo field of struct cpuid_info 6667614 Incorrect check for Extended Model of processor Contributed by Ashok Raj <ashok.raj@intel.com>
author kk208521
date Fri, 28 Mar 2008 18:21:02 -0700
parents 2513339ac53a
children 950d3f34a725
line wrap: on
line diff
--- a/usr/src/uts/i86pc/os/cpuid.c	Fri Mar 28 17:41:18 2008 -0700
+++ b/usr/src/uts/i86pc/os/cpuid.c	Fri Mar 28 18:21:02 2008 -0700
@@ -1391,7 +1391,7 @@
 			dp = cpi->cpi_cacheinfo;
 			if (BITX(cp->cp_eax, 31, 31) == 0) {
 				uint8_t *p = (void *)&cp->cp_eax;
-				for (i = 1; i < 3; i++)
+				for (i = 1; i < 4; i++)
 					if (p[i] != 0)
 						*dp++ = p[i];
 			}
@@ -1602,7 +1602,7 @@
 			celeron = xeon = 0;
 			cp = &cpi->cpi_std[2];	/* cache info */
 
-			for (i = 1; i < 3; i++) {
+			for (i = 1; i < 4; i++) {
 				uint_t tmp;
 
 				tmp = (cp->cp_eax >> (8 * i)) & 0xff;
@@ -3446,7 +3446,7 @@
 
 	switch (cpi->cpi_vendor) {
 	case X86_VENDOR_Intel:
-		create = CPI_MODEL(cpi) == 0xf;
+		create = IS_EXTENDED_MODEL_INTEL(cpi);
 		break;
 	case X86_VENDOR_AMD:
 		create = CPI_FAMILY(cpi) == 0xf;