]> xenbits.xensource.com Git - libvirt.git/commitdiff
Fix bogus reporting of KVM support for non-native emulators
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 25 Jan 2013 10:46:49 +0000 (10:46 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 25 Jan 2013 10:47:54 +0000 (10:47 +0000)
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>
src/qemu/qemu_capabilities.c

index f86c28f2a205b2174f31f7bfbfb01dfddf900d38..29693c339c44b68cfaeb4f15ff7a574e2679d6c5 100644 (file)
@@ -2117,11 +2117,16 @@ qemuCapsProbeQMPKVMState(qemuCapsPtr caps,
         return -1;
 
     /* The QEMU_CAPS_KVM flag was initially set according to the QEMU
-     * reporting the recognition of 'query-kvm' QMP command, but the
-     * flag means whether the KVM is enabled by default and should be
-     * disabled in case we want SW emulated machine, so let's fix that
-     * if it's true. */
-    if (!enabled) {
+     * reporting the recognition of 'query-kvm' QMP command. That merely
+     * indicates existance of the command though, not whether KVM support
+     * is actually available, nor whether it is enabled by default.
+     *
+     * 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);
         qemuCapsSet(caps, QEMU_CAPS_ENABLE_KVM);
     }