[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/13] x86/cpuid: remove unnecessary kvm_trim functi
From: |
Andre Przywara |
Subject: |
[Qemu-devel] [PATCH 07/13] x86/cpuid: remove unnecessary kvm_trim function |
Date: |
Thu, 11 Mar 2010 14:39:01 +0100 |
Correct me if I am wrong, but kvm_trim looks like a really bloated
implementation of a bitwise AND. So remove this function and replace
it with the real stuff(TM).
Signed-off-by: Andre Przywara <address@hidden>
---
target-i386/kvm.c | 27 ++++++---------------------
1 files changed, 6 insertions(+), 21 deletions(-)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 40f8303..f77e488 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -133,19 +133,6 @@ uint32_t kvm_arch_get_supported_cpuid(CPUState *env,
uint32_t function, int reg)
#endif
-static void kvm_trim_features(uint32_t *features, uint32_t supported)
-{
- int i;
- uint32_t mask;
-
- for (i = 0; i < 32; ++i) {
- mask = 1U << i;
- if ((*features & mask) && !(supported & mask)) {
- *features &= ~mask;
- }
- }
-}
-
#ifdef CONFIG_KVM_PARA
struct kvm_para_features {
int cap;
@@ -191,18 +178,16 @@ int kvm_arch_init_vcpu(CPUState *env)
env->mp_state = KVM_MP_STATE_RUNNABLE;
- kvm_trim_features(&env->cpuid_features,
- kvm_arch_get_supported_cpuid(env, 1, R_EDX));
+ env->cpuid_features &= kvm_arch_get_supported_cpuid(env, 1, R_EDX);
i = env->cpuid_ext_features & CPUID_EXT_HYPERVISOR;
- kvm_trim_features(&env->cpuid_ext_features,
- kvm_arch_get_supported_cpuid(env, 1, R_ECX));
+ env->cpuid_ext_features &= kvm_arch_get_supported_cpuid(env, 1, R_ECX);
env->cpuid_ext_features |= i;
- kvm_trim_features(&env->cpuid_ext2_features,
- kvm_arch_get_supported_cpuid(env, 0x80000001, R_EDX));
- kvm_trim_features(&env->cpuid_ext3_features,
- kvm_arch_get_supported_cpuid(env, 0x80000001, R_ECX));
+ env->cpuid_ext2_features &= kvm_arch_get_supported_cpuid(env, 0x80000001,
+ R_EDX);
+ env->cpuid_ext3_features &= kvm_arch_get_supported_cpuid(env, 0x80000001,
+ R_ECX);
cpuid_i = 0;
--
1.6.4
- [Qemu-devel] [PATCH 03/13] x86/cpuid: fix missing feature set bits, (continued)
- [Qemu-devel] [PATCH 03/13] x86/cpuid: fix missing feature set bits, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 06/13] x86/cpuid: add "host" to the list of supported CPU models, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 08/13] x86/cpuid: propagate further CPUID leafs when -cpu host, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 12/13] x86/cpuid: fix CPUID levels, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 09/13] x86/cpuid: add TCG feature bit trimming, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 04/13] x86/cpuid: moved host_cpuid function and remove prototype, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 13/13] x86/cpuid: Update qemu64/32 CPU models, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 10/13] x86/cpuid: Always expose 32 and 64-bit CPUs, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 02/13] x86/cpuid: replace magic number with named constant, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 07/13] x86/cpuid: remove unnecessary kvm_trim function,
Andre Przywara <=
- [Qemu-devel] [PATCH 01/13] x86/cpuid: move CPUID functions into separate file, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 05/13] x86/cpuid: add missing CPUID feature flag names, Andre Przywara, 2010/03/11
- [Qemu-devel] [PATCH 11/13] x86/cpuid: Add kvm32 CPU model, Andre Przywara, 2010/03/11
- Re: [Qemu-devel] [PATCH 00/13] x86/cpuid: cleanups and fixes, Aurelien Jarno, 2010/03/13