]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Revert "tpm: Check TPM XML device configuration changes after edit"
authorJán Tomko <jtomko@redhat.com>
Fri, 9 Aug 2019 08:48:35 +0000 (10:48 +0200)
committerJán Tomko <jtomko@redhat.com>
Fri, 9 Aug 2019 12:55:10 +0000 (14:55 +0200)
Redefining a domain via virDomainDefineXML should not give different results
based on an already existing definition.

Also, there's a crasher somewhere in the code:
https://bugzilla.redhat.com/show_bug.cgi?id=1739338

This reverts commit 94b3aa55f83ada33a9fdda66068d58ef1a56c0a5

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/libvirt_private.syms
src/qemu/qemu_driver.c
src/qemu/qemu_extdevice.c
src/qemu/qemu_extdevice.h

index e7a41f5d91a578985be6f8dbfa07ec55fc328a90..03312afaaff8603e2e014d10f35d0bad23a1d1c4 100644 (file)
@@ -31470,59 +31470,3 @@ virDomainGraphicsNeedsAutoRenderNode(const virDomainGraphicsDef *graphics)
 
     return true;
 }
-
-
-static int
-virDomainCheckTPMChanges(virDomainDefPtr def,
-                         virDomainDefPtr newDef)
-{
-    bool oldEnc, newEnc;
-
-    if (!def->tpm)
-        return 0;
-
-    switch (def->tpm->type) {
-    case VIR_DOMAIN_TPM_TYPE_EMULATOR:
-        if (virFileExists(def->tpm->data.emulator.storagepath)) {
-            /* VM has been started */
-            /* Once a VM was started with an encrypted state we allow
-             * less configuration changes.
-             */
-            oldEnc = def->tpm->data.emulator.hassecretuuid;
-            if (oldEnc && def->tpm->type != newDef->tpm->type) {
-                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                               _("Changing the type of TPM is not allowed"));
-                return -1;
-            }
-            if (oldEnc && !newDef->tpm) {
-                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                               _("Removing an encrypted TPM is not allowed"));
-                return -1;
-            }
-            newEnc = newDef->tpm->data.emulator.hassecretuuid;
-            if (oldEnc != newEnc) {
-                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                   _("TPM state encryption cannot be changed "
-                     "once VM was started"));
-                return -1;
-            }
-        }
-        break;
-    case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
-    case VIR_DOMAIN_TPM_TYPE_LAST:
-        break;
-    }
-
-    return 0;
-}
-
-
-int
-virDomainCheckDeviceChanges(virDomainDefPtr def,
-                            virDomainDefPtr newDef)
-{
-    if (!def || !newDef)
-        return 0;
-
-    return virDomainCheckTPMChanges(def, newDef);
-}
index 0be9f01b19d7eed2a78bec233ee01e51950ed2bf..bce47443c858e7df73f19cf31a9c06f7b3237818 100644 (file)
@@ -3646,6 +3646,3 @@ virDomainGraphicsGetRenderNode(const virDomainGraphicsDef *graphics);
 
 bool
 virDomainGraphicsNeedsAutoRenderNode(const virDomainGraphicsDef *graphics);
-
-int
-virDomainCheckDeviceChanges(virDomainDefPtr def, virDomainDefPtr newDef);
index cae8febf8df784fd52e8a65926c9bad0546f4538..7a3feb8efa0bebc8dbc31b0b4c4409f9d1f8dc52 100644 (file)
@@ -217,7 +217,6 @@ virDomainBootTypeFromString;
 virDomainBootTypeToString;
 virDomainCapabilitiesPolicyTypeToString;
 virDomainCapsFeatureTypeToString;
-virDomainCheckDeviceChanges;
 virDomainChrConsoleTargetTypeFromString;
 virDomainChrConsoleTargetTypeToString;
 virDomainChrDefForeach;
index a60231a658bec6ef80c99b799e52a835d2713542..8d1fcb1cc839a575cec754e7d9c8b10f3d0f8a54 100644 (file)
@@ -53,7 +53,6 @@
 #include "qemu_migration_params.h"
 #include "qemu_blockjob.h"
 #include "qemu_security.h"
-#include "qemu_extdevice.h"
 
 #include "virerror.h"
 #include "virlog.h"
@@ -7776,30 +7775,6 @@ qemuDomainCreate(virDomainPtr dom)
     return qemuDomainCreateWithFlags(dom, 0);
 }
 
-static int
-qemuDomainCheckDeviceChanges(virQEMUDriverPtr driver,
-                             virDomainDefPtr def)
-{
-    virDomainObjPtr vm;
-    int ret;
-
-    vm = virDomainObjListFindByUUID(driver->domains, def->uuid);
-    if (!vm)
-        return 0;
-
-    if (qemuExtDevicesInitPaths(driver, vm->def) < 0) {
-        ret = -1;
-        goto cleanup;
-    }
-
-    ret = virDomainCheckDeviceChanges(vm->def, def);
-
- cleanup:
-    virDomainObjEndAPI(&vm);
-
-    return ret;
-}
-
 static virDomainPtr
 qemuDomainDefineXMLFlags(virConnectPtr conn,
                          const char *xml,
@@ -7836,9 +7811,6 @@ qemuDomainDefineXMLFlags(virConnectPtr conn,
     if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0)
         goto cleanup;
 
-    if (qemuDomainCheckDeviceChanges(driver, def) < 0)
-        goto cleanup;
-
     if (!(vm = virDomainObjListAdd(driver->domains, def,
                                    driver->xmlopt,
                                    0, &oldDef)))
index af52466421272b457cee03e20852aca89fa91120..dc032aa60c19d040ab89a952273c034447afaf9e 100644 (file)
@@ -79,7 +79,7 @@ qemuExtDeviceLogCommand(qemuDomainLogContextPtr logCtxt,
  * stored and we can remove directories and files in case of domain XML
  * changes.
  */
-int
+static int
 qemuExtDevicesInitPaths(virQEMUDriverPtr driver,
                         virDomainDefPtr def)
 {
index 5a53c79f384bf24541e97be2fa0ad2d69bfd3409..039b3e60ddf39a54ab0dec678502555732ad1812 100644 (file)
@@ -54,6 +54,3 @@ bool qemuExtDevicesHasDevice(virDomainDefPtr def);
 int qemuExtDevicesSetupCgroup(virQEMUDriverPtr driver,
                               virDomainDefPtr def,
                               virCgroupPtr cgroup);
-
-int qemuExtDevicesInitPaths(virQEMUDriverPtr driver,
-                            virDomainDefPtr def);