aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2011-06-02 14:43:02 +0100
committerKeir Fraser <keir@xen.org>2011-06-02 14:43:02 +0100
commit9d78da3acbd231a7e824a97851920d0a05040042 (patch)
tree54df4a7905c6a3ca8e96b2fffb37cbd3f3a96101
parent27166be8e5dd91f34e3fc067008a79507b7dcba8 (diff)
downloadxen-9d78da3acbd231a7e824a97851920d0a05040042.tar.gz
xen-9d78da3acbd231a7e824a97851920d0a05040042.tar.bz2
xen-9d78da3acbd231a7e824a97851920d0a05040042.zip
x86: Replace ad-hoc bitmaskof() macro with single cpufeat_mask() defn.
Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 23460:c72869c8ae02 xen-unstable date: Thu Jun 02 14:34:34 2011 +0100
-rw-r--r--xen/arch/x86/hvm/hvm.c9
-rw-r--r--xen/arch/x86/hvm/svm/svm.c1
-rw-r--r--xen/arch/x86/hvm/vmx/vmx.c5
-rw-r--r--xen/include/asm-x86/cpufeature.h1
4 files changed, 7 insertions, 9 deletions
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index bb086bcb22..ecd1a26804 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2184,7 +2184,6 @@ unsigned long copy_from_user_hvm(void *to, const void *from, unsigned len)
return rc ? len : 0; /* fake a copy_from_user() return code */
}
-#define bitmaskof(idx) (1U << ((idx) & 31))
void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx,
unsigned int *ecx, unsigned int *edx)
{
@@ -2211,7 +2210,7 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx,
/* Fix up OSXSAVE. */
if ( xsave_enabled(v) )
*ecx |= (v->arch.hvm_vcpu.guest_cr[4] & X86_CR4_OSXSAVE) ?
- bitmaskof(X86_FEATURE_OSXSAVE) : 0;
+ cpufeat_mask(X86_FEATURE_OSXSAVE) : 0;
break;
case 0xb:
/* Fix the x2APIC identifier. */
@@ -2242,7 +2241,7 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx,
tsc_mode == TSC_MODE_DEFAULT and host_tsc_is_safe() returns 1 */
if ( v->domain->arch.tsc_mode != TSC_MODE_DEFAULT ||
!host_tsc_is_safe() )
- *edx &= ~bitmaskof(X86_FEATURE_RDTSCP);
+ *edx &= ~cpufeat_mask(X86_FEATURE_RDTSCP);
break;
}
}
@@ -2271,7 +2270,7 @@ int hvm_msr_read_intercept(unsigned int msr, uint64_t *msr_content)
fixed_range_base = (uint64_t *)v->arch.hvm_vcpu.mtrr.fixed_ranges;
hvm_cpuid(1, &cpuid[0], &cpuid[1], &cpuid[2], &cpuid[3]);
- mtrr = !!(cpuid[3] & bitmaskof(X86_FEATURE_MTRR));
+ mtrr = !!(cpuid[3] & cpufeat_mask(X86_FEATURE_MTRR));
switch ( msr )
{
@@ -2383,7 +2382,7 @@ int hvm_msr_write_intercept(unsigned int msr, uint64_t msr_content)
(uint32_t)msr_content, (uint32_t)(msr_content >> 32));
hvm_cpuid(1, &cpuid[0], &cpuid[1], &cpuid[2], &cpuid[3]);
- mtrr = !!(cpuid[3] & bitmaskof(X86_FEATURE_MTRR));
+ mtrr = !!(cpuid[3] & cpufeat_mask(X86_FEATURE_MTRR));
switch ( msr )
{
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 47c2a7bbae..4014aaf3c5 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -993,7 +993,6 @@ static void svm_fpu_dirty_intercept(void)
vmcb_set_cr0(vmcb, vmcb_get_cr0(vmcb) & ~X86_CR0_TS);
}
-#define bitmaskof(idx) (1U << ((idx) & 31))
static void svm_cpuid_intercept(
unsigned int *eax, unsigned int *ebx,
unsigned int *ecx, unsigned int *edx)
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index ab903a354b..e5564be9e8 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1479,7 +1479,6 @@ static void vmx_fpu_dirty_intercept(void)
}
}
-#define bitmaskof(idx) (1U << ((idx) & 31))
static void vmx_cpuid_intercept(
unsigned int *eax, unsigned int *ebx,
unsigned int *ecx, unsigned int *edx)
@@ -1496,9 +1495,9 @@ static void vmx_cpuid_intercept(
/* SYSCALL is visible iff running in long mode. */
hvm_get_segment_register(v, x86_seg_cs, &cs);
if ( cs.attr.fields.l )
- *edx |= bitmaskof(X86_FEATURE_SYSCALL);
+ *edx |= cpufeat_mask(X86_FEATURE_SYSCALL);
else
- *edx &= ~(bitmaskof(X86_FEATURE_SYSCALL));
+ *edx &= ~(cpufeat_mask(X86_FEATURE_SYSCALL));
break;
}
diff --git a/xen/include/asm-x86/cpufeature.h b/xen/include/asm-x86/cpufeature.h
index 9b783ad1da..58134624d1 100644
--- a/xen/include/asm-x86/cpufeature.h
+++ b/xen/include/asm-x86/cpufeature.h
@@ -145,6 +145,7 @@
#define cpu_has(c, bit) test_bit(bit, (c)->x86_capability)
#define boot_cpu_has(bit) test_bit(bit, boot_cpu_data.x86_capability)
+#define cpufeat_mask(idx) (1u << ((idx) & 31))
#ifdef __i386__
#define cpu_has_vme boot_cpu_has(X86_FEATURE_VME)