From: Martin Kletzander <mklet...@redhat.com>

This way we can do the check for a particular TPM also elsewhere in the
code, especially in places where we're dealing with only one TPM.  The
semantics is changed a little bit in a way that the function will check
all the TPMs as opposed to stopping on the first one which is of the
emulator type, but since a domain can currently only have one of these
it was not an issue.

Signed-off-by: Martin Kletzander <mklet...@redhat.com>
---
 src/qemu/qemu_tpm.c | 59 ++++++++++++++++++++++++++-------------------
 1 file changed, 34 insertions(+), 25 deletions(-)

diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c
index 8c104ab1b303..855d732e60d0 100644
--- a/src/qemu/qemu_tpm.c
+++ b/src/qemu/qemu_tpm.c
@@ -205,6 +205,40 @@ qemuTPMEmulatorCreateStorage(virDomainTPMDef *tpm,
 }
 
 
+static bool
+qemuTPMHasSharedStorage(const virQEMUDriverConfig *cfg,
+                        const virDomainTPMDef *tpm)
+{
+    switch (tpm->type) {
+    case VIR_DOMAIN_TPM_TYPE_EMULATOR:
+        return virFileIsSharedFS(tpm->data.emulator.source_path,
+                                 cfg->sharedFilesystems) == 1;
+    case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
+    case VIR_DOMAIN_TPM_TYPE_EXTERNAL:
+    case VIR_DOMAIN_TPM_TYPE_LAST:
+        break;
+    }
+
+    return false;
+}
+
+
+bool
+qemuTPMDomainHasSharedStorage(virQEMUDriver *driver,
+                              virDomainDef *def)
+{
+    g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
+    size_t i;
+
+    for (i = 0; i < def->ntpms; i++) {
+        if (qemuTPMHasSharedStorage(cfg, def->tpms[i]))
+            return true;
+    }
+
+    return false;
+}
+
+
 /**
  * qemuTPMEmulatorDeleteStorage:
  * @tpm: TPM definition
@@ -1218,31 +1252,6 @@ qemuTPMEmulatorStart(virQEMUDriver *driver,
 }
 
 
-bool
-qemuTPMDomainHasSharedStorage(virQEMUDriver *driver,
-                              virDomainDef *def)
-{
-    g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
-    size_t i;
-
-    for (i = 0; i < def->ntpms; i++) {
-        virDomainTPMDef *tpm = def->tpms[i];
-
-        switch (tpm->type) {
-        case VIR_DOMAIN_TPM_TYPE_EMULATOR:
-            return virFileIsSharedFS(tpm->data.emulator.source_path,
-                                     cfg->sharedFilesystems) == 1;
-        case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
-        case VIR_DOMAIN_TPM_TYPE_EXTERNAL:
-        case VIR_DOMAIN_TPM_TYPE_LAST:
-            break;
-        }
-    }
-
-    return false;
-}
-
-
 bool
 qemuTPMCanMigrateSharedStorage(virDomainDef *def)
 {
-- 
2.50.1

Reply via email to