usr/src/uts/i86pc/os/cpuid.c
changeset 4636 f7779128d972
parent 4628 f90cf8fd4710
child 4797 2ebe22df4dfc
--- a/usr/src/uts/i86pc/os/cpuid.c	Wed Jul 11 18:54:04 2007 -0700
+++ b/usr/src/uts/i86pc/os/cpuid.c	Wed Jul 11 18:54:16 2007 -0700
@@ -587,6 +587,12 @@
 			mask_ecx = 0xffffffff;
 		} else if (cpi->cpi_family > 0xf)
 			mask_ecx = 0xffffffff;
+		/*
+		 * We don't support MONITOR/MWAIT if leaf 5 is not available
+		 * to obtain the monitor linesize.
+		 */
+		if (cpi->cpi_maxeax < 5)
+			mask_ecx &= ~CPUID_INTC_ECX_MON;
 		break;
 	case X86_VENDOR_IntelClone:
 	default:
@@ -631,6 +637,12 @@
 		 */
 		if (cpi->cpi_family >= 0xf)
 			mask_ecx = 0xffffffff;
+		/*
+		 * We don't support MONITOR/MWAIT if leaf 5 is not available
+		 * to obtain the monitor linesize.
+		 */
+		if (cpi->cpi_maxeax < 5)
+			mask_ecx &= ~CPUID_INTC_ECX_MON;
 		break;
 	case X86_VENDOR_TM:
 		/*