Print this page
patch x2apic-x86fset
patch remove-unused-vars
@@ -20,10 +20,11 @@
*/
/*
* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011 by Delphix. All rights reserved.
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2014 Josef "Jeff" Sipek <jeffpc@josefsipek.net>
*/
/*
* Copyright (c) 2010, Intel Corporation.
* All rights reserved.
*/
@@ -118,11 +119,10 @@
uint_t x86_vendor = X86_VENDOR_IntelClone;
uint_t x86_type = X86_TYPE_OTHER;
uint_t x86_clflush_size = 0;
uint_t pentiumpro_bug4046376;
-uint_t pentiumpro_bug4064495;
uchar_t x86_featureset[BT_SIZEOFMAP(NUM_X86_FEATURES)];
static char *x86_feature_names[NUM_X86_FEATURES] = {
"lgpg",
@@ -162,11 +162,12 @@
"avx",
"vmx",
"svm",
"topoext",
"f16c",
- "rdrand"
+ "rdrand",
+ "x2apic",
};
boolean_t
is_x86_feature(void *featureset, uint_t feature)
{
@@ -212,12 +213,10 @@
x86_feature_names[i]);
}
}
}
-uint_t enable486;
-
static size_t xsave_state_size = 0;
uint64_t xsave_bv_all = (XFEATURE_LEGACY_FP | XFEATURE_SSE);
boolean_t xsave_force_disable = B_FALSE;
/*
@@ -1031,11 +1030,10 @@
if (cpi->cpi_family == 5)
x86_type = X86_TYPE_P5;
else if (IS_LEGACY_P6(cpi)) {
x86_type = X86_TYPE_P6;
pentiumpro_bug4046376 = 1;
- pentiumpro_bug4064495 = 1;
/*
* Clear the SEP bit when it was set erroneously
*/
if (cpi->cpi_model < 3 && cpi->cpi_step < 3)
cp->cp_edx &= ~CPUID_INTC_EDX_SEP;
@@ -1313,10 +1311,13 @@
add_x86_feature(featureset,
X86FSET_F16C);
}
}
}
+ if (cp->cp_ecx & CPUID_INTC_ECX_X2APIC) {
+ add_x86_feature(featureset, X86FSET_X2APIC);
+ }
if (cp->cp_edx & CPUID_INTC_EDX_DE) {
add_x86_feature(featureset, X86FSET_DE);
}
#if !defined(__xpv)
if (cp->cp_ecx & CPUID_INTC_ECX_MON) {