diff options
author | Max Reitz <mreitz@redhat.com> | 2019-06-24 21:39:13 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-07-05 22:16:46 +0200 |
commit | 9dc83cd9c3cd766263a7180bccaf67afe970d816 (patch) | |
tree | 49baa2be678eb6557ea3b00a3961e34f017bb502 /target | |
parent | c20b139620498b2f158b52e0c4ad7f6de35a520e (diff) |
i386/kvm: Fix build with -m32
find_next_bit() takes a pointer of type "const unsigned long *", but the
first argument passed here is a "uint64_t *". These types are
incompatible when compiling qemu with -m32.
Just use ctz64() instead.
Fixes: c686193072a47032d83cb4e131dc49ae30f9e5d
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20190624193913.28343-1-mreitz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target')
-rw-r--r-- | target/i386/kvm.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/target/i386/kvm.c b/target/i386/kvm.c index e4b4f5756a..31490bf8b5 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -1043,14 +1043,15 @@ static int hv_cpuid_check_and_set(CPUState *cs, struct kvm_cpuid2 *cpuid, CPUX86State *env = &cpu->env; uint32_t r, fw, bits; uint64_t deps; - int i, dep_feat = 0; + int i, dep_feat; if (!hyperv_feat_enabled(cpu, feature) && !cpu->hyperv_passthrough) { return 0; } deps = kvm_hyperv_properties[feature].dependencies; - while ((dep_feat = find_next_bit(&deps, 64, dep_feat)) < 64) { + while (deps) { + dep_feat = ctz64(deps); if (!(hyperv_feat_enabled(cpu, dep_feat))) { fprintf(stderr, "Hyper-V %s requires Hyper-V %s\n", @@ -1058,7 +1059,7 @@ static int hv_cpuid_check_and_set(CPUState *cs, struct kvm_cpuid2 *cpuid, kvm_hyperv_properties[dep_feat].desc); return 1; } - dep_feat++; + deps &= ~(1ull << dep_feat); } for (i = 0; i < ARRAY_SIZE(kvm_hyperv_properties[feature].flags); i++) { |