Fix bogus reporting of KVM support for non-native emulators

A logic bug meant we reported KVM was possible for every
architecture, merely based on whether the query-kvm command
exists. We should instead have been doing it based on whether
the query-kvm command returns 'present: 1'

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange 2013-01-25 10:46:49 +00:00
parent d7a3700ee7
commit c29eafc890

View File

@ -2117,11 +2117,16 @@ qemuCapsProbeQMPKVMState(qemuCapsPtr caps,
return -1; return -1;
/* The QEMU_CAPS_KVM flag was initially set according to the QEMU /* The QEMU_CAPS_KVM flag was initially set according to the QEMU
* reporting the recognition of 'query-kvm' QMP command, but the * reporting the recognition of 'query-kvm' QMP command. That merely
* flag means whether the KVM is enabled by default and should be * indicates existance of the command though, not whether KVM support
* disabled in case we want SW emulated machine, so let's fix that * is actually available, nor whether it is enabled by default.
* if it's true. */ *
if (!enabled) { * If it is not present we need to clear the flag, and if it is
* not enabled by default we need to change the flag.
*/
if (!present) {
qemuCapsClear(caps, QEMU_CAPS_KVM);
} else if (!enabled) {
qemuCapsClear(caps, QEMU_CAPS_KVM); qemuCapsClear(caps, QEMU_CAPS_KVM);
qemuCapsSet(caps, QEMU_CAPS_ENABLE_KVM); qemuCapsSet(caps, QEMU_CAPS_ENABLE_KVM);
} }