]> xenbits.xensource.com Git - libvirt.git/commitdiff
domcaps: Remove function initializing domain caps as unsupported
authorPeter Krempa <pkrempa@redhat.com>
Thu, 21 Nov 2019 08:52:24 +0000 (09:52 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 22 Nov 2019 07:16:51 +0000 (08:16 +0100)
Commit 5751a0b6b1968bb2354b2ac21cc5938b93009590 added a helper function
called virDomainCapsFeaturesInitUnsupported which initialized all domain
capability features as unsupported.

When adding a new feature this would initialize it as unsupported also
for hypervisor drivers which the original author possibly didn't intend
to modify. To prevent accidental wrong value being reported in such case
revert back to initializing individual features in the hypervisor
drivers themselves.

This is not a straight revert as additonal patches modified how we store
the capabilities.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/bhyve/bhyve_capabilities.c
src/conf/domain_capabilities.c
src/conf/domain_capabilities.h
src/libvirt_private.syms
src/libxl/libxl_capabilities.c
src/qemu/qemu_capabilities.c

index f80cf7be62f97c6090fb0dedb9981339b0c1665f..fb8829d5711cc0fb98ee2ac9879478a78d65a064 100644 (file)
@@ -116,7 +116,9 @@ virBhyveDomainCapsFill(virDomainCapsPtr caps,
     }
 
     caps->hostdev.supported = VIR_TRISTATE_BOOL_NO;
-    virDomainCapsFeaturesInitUnsupported(caps);
+    caps->features[VIR_DOMAIN_CAPS_FEATURE_IOTHREADS] = VIR_TRISTATE_BOOL_NO;
+    caps->features[VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO] = VIR_TRISTATE_BOOL_NO;
+    caps->features[VIR_DOMAIN_CAPS_FEATURE_GENID] = VIR_TRISTATE_BOOL_NO;
     caps->gic.supported = VIR_TRISTATE_BOOL_NO;
 
     return 0;
index 0979711fea8c01b12e0596e9a7283688eb2874e3..fa27e95e1b3f5588a58a688834ba134fbd16f41f 100644 (file)
@@ -272,21 +272,6 @@ virDomainCapsEnumClear(virDomainCapsEnumPtr capsEnum)
 }
 
 
-/**
- * @caps: domain caps
- *
- * Initializes all features in 'caps' as unsupported.
- */
-void
-virDomainCapsFeaturesInitUnsupported(virDomainCapsPtr caps)
-{
-    size_t i;
-
-    for (i = 0; i < VIR_DOMAIN_CAPS_FEATURE_LAST; i++)
-        caps->features[i] = VIR_TRISTATE_BOOL_NO;
-}
-
-
 static int
 virDomainCapsEnumFormat(virBufferPtr buf,
                         const virDomainCapsEnum *capsEnum,
index d69bf8d13eccde630c9cf9ec2fb40e482163919e..c8eeb035ac82ea7dce58dbf8e570d38461c5f665 100644 (file)
@@ -227,8 +227,6 @@ int virDomainCapsEnumSet(virDomainCapsEnumPtr capsEnum,
                          unsigned int *values);
 void virDomainCapsEnumClear(virDomainCapsEnumPtr capsEnum);
 
-void virDomainCapsFeaturesInitUnsupported(virDomainCapsPtr caps);
-
 char * virDomainCapsFormat(const virDomainCaps *caps);
 
 int virDomainCapsDeviceDefValidate(const virDomainCaps *caps,
index 341643884150faf657680b58bebc809ac42b0f8e..44201cda145f8bae6bf0ba2181a2d6865813e806 100644 (file)
@@ -200,7 +200,6 @@ virDomainCapsCPUUsableTypeToString;
 virDomainCapsDeviceDefValidate;
 virDomainCapsEnumClear;
 virDomainCapsEnumSet;
-virDomainCapsFeaturesInitUnsupported;
 virDomainCapsFormat;
 virDomainCapsNew;
 virSEVCapabilitiesFree;
index 052fbd46039f671867b04a1ccf795afdaa406dc3..c920c2aec5d6721a6a803ffb456a0ed359ba2199 100644 (file)
@@ -764,8 +764,9 @@ libxlMakeDomainCapabilities(virDomainCapsPtr domCaps,
         libxlMakeDomainDeviceHostdevCaps(hostdev) < 0)
         return -1;
 
-    virDomainCapsFeaturesInitUnsupported(domCaps);
-
+    domCaps->features[VIR_DOMAIN_CAPS_FEATURE_IOTHREADS] = VIR_TRISTATE_BOOL_NO;
+    domCaps->features[VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO] = VIR_TRISTATE_BOOL_NO;
+    domCaps->features[VIR_DOMAIN_CAPS_FEATURE_GENID] = VIR_TRISTATE_BOOL_NO;
     domCaps->gic.supported = VIR_TRISTATE_BOOL_NO;
 
     return 0;
index 0a406972e78f9262aa99976d35444f5670342573..d74bcd96b0c248e9f933a3fb86914837f96bf6c5 100644 (file)
@@ -5447,6 +5447,8 @@ virQEMUCapsFillDomainFeaturesFromQEMUCaps(virQEMUCapsPtr qemuCaps,
     for (i = 0; i < G_N_ELEMENTS(domCapsTuples); i++) {
         if (virQEMUCapsGet(qemuCaps, domCapsTuples[i].qemucap))
             domCaps->features[domCapsTuples[i].domcap] = VIR_TRISTATE_BOOL_YES;
+        else
+            domCaps->features[domCapsTuples[i].domcap] = VIR_TRISTATE_BOOL_NO;
     }
 }
 
@@ -5735,7 +5737,6 @@ virQEMUCapsFillDomainCaps(virCapsPtr caps,
     virDomainCapsDeviceVideoPtr video = &domCaps->video;
     virDomainCapsDeviceRNGPtr rng = &domCaps->rng;
 
-    virDomainCapsFeaturesInitUnsupported(domCaps);
     virQEMUCapsFillDomainFeaturesFromQEMUCaps(qemuCaps, domCaps);
 
     domCaps->maxvcpus = virQEMUCapsGetMachineMaxCpus(qemuCaps,