[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/13] cpuid: remove unnecessary kvm_trim function
From: |
Andre Przywara |
Subject: |
[Qemu-devel] [PATCH 07/13] cpuid: remove unnecessary kvm_trim function |
Date: |
Tue, 2 Feb 2010 11:08:15 +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 5b093ce..daa65c1 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -125,19 +125,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;
@@ -186,18 +173,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 00/13] i386 cpuid: cleanup and fixes, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 02/13] cpuid: replace magic number with named constant, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 05/13] cpuid: add missing CPUID feature flag names, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 08/13] cpuid: simplify CPUID flag search function, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 11/13] cpuid: Always expose 32 and 64-bit CPUs, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 10/13] cpuid: add TCG feature bit trimming, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 03/13] cpuid: moved host_cpuid function and remove prototype, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 09/13] cpuid: propagate further CPUID leafs when -cpu host, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 04/13] cpuid: Replace strtok with get_opt_name, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 01/13] cpuid: move CPUID functions into separate file, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 07/13] cpuid: remove unnecessary kvm_trim function,
Andre Przywara <=
- [Qemu-devel] [PATCH 06/13] cpuid: list all known x86 CPUID feature flags, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 12/13] cpuid: Add kvm32 CPU model, Andre Przywara, 2010/02/02
- [Qemu-devel] [PATCH 13/13] cpuid: fix CPUID levels, Andre Przywara, 2010/02/02