diff options
Diffstat (limited to 'usr/src')
| -rw-r--r-- | usr/src/uts/i86pc/os/cpuid.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/usr/src/uts/i86pc/os/cpuid.c b/usr/src/uts/i86pc/os/cpuid.c index ea47049c76..e8f83b5ee9 100644 --- a/usr/src/uts/i86pc/os/cpuid.c +++ b/usr/src/uts/i86pc/os/cpuid.c @@ -1092,8 +1092,7 @@ cpuid_pass1(cpu_t *cpu) if (x86_vendor == X86_VENDOR_AMD) feature &= ~X86_SEP; #endif - if (x86_vendor == X86_VENDOR_AMD && - cp->cp_edx & CPUID_AMD_EDX_TSCP) + if (cp->cp_edx & CPUID_AMD_EDX_TSCP) feature |= X86_TSCP; break; default: @@ -2197,6 +2196,8 @@ cpuid_pass4(cpu_t *cpu) */ switch (cpi->cpi_vendor) { case X86_VENDOR_Intel: + if ((x86_feature & X86_TSCP) == 0) + *edx &= ~CPUID_AMD_EDX_TSCP; break; case X86_VENDOR_AMD: @@ -2251,6 +2252,8 @@ cpuid_pass4(cpu_t *cpu) break; case X86_VENDOR_Intel: + if (*edx & CPUID_AMD_EDX_TSCP) + hwcap_flags |= AV_386_TSCP; /* * Aarrgh. * Intel uses a different bit in the same word. |
