]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuBuildTPMOpenBackendFDs: Construct 'cancel_path' internally
authorPeter Krempa <pkrempa@redhat.com>
Wed, 9 Feb 2022 12:49:03 +0000 (13:49 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 14 Feb 2022 12:14:00 +0000 (13:14 +0100)
Since 'cancel_path' is constructed from the 'tpmdev' argument, we can
push it down into the function opening the FDs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_command.c
src/qemu/qemu_command.h
tests/qemuxml2argvmock.c

index 12a0462ce7f347919106f851fcb2ebc872fb1b47..2ea993b8a54af050a8da3d4109f625f62962d83d 100644 (file)
@@ -9737,10 +9737,14 @@ qemuBuildTPMDevCmd(virCommand *cmd,
 /* this function is exported so that tests can mock the FDs */
 int
 qemuBuildTPMOpenBackendFDs(const char *tpmdev,
-                           const char *cancel_path,
                            int *tpmfd,
                            int *cancelfd)
 {
+    g_autofree char *cancel_path = NULL;
+
+    if (!(cancel_path = virTPMCreateCancelPath(tpmdev)))
+        return -1;
+
     if ((*tpmfd = open(tpmdev, O_RDWR)) < 0) {
         virReportSystemError(errno, _("Could not open TPM device %s"),
                              tpmdev);
@@ -9766,10 +9770,8 @@ qemuBuildTPMBackendStr(virCommand *cmd,
                        int *cancelfd)
 {
     g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
-    g_autofree char *cancel_path = NULL;
     g_autofree char *devset = NULL;
     g_autofree char *cancelset = NULL;
-    const char *tpmdev;
 
     *tpmfd = -1;
     *cancelfd = -1;
@@ -9779,11 +9781,8 @@ qemuBuildTPMBackendStr(virCommand *cmd,
 
     switch (tpm->type) {
     case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
-        tpmdev = tpm->data.passthrough.source->data.file.path;
-        if (!(cancel_path = virTPMCreateCancelPath(tpmdev)))
-            return NULL;
-
-        if (qemuBuildTPMOpenBackendFDs(tpmdev, cancel_path, tpmfd, cancelfd) < 0)
+        if (qemuBuildTPMOpenBackendFDs(tpm->data.passthrough.source->data.file.path,
+                                       tpmfd, cancelfd) < 0)
             return NULL;
 
         virCommandPassFD(cmd, *tpmfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT);
index b7fcf15a1ef94f2a246963f74215fddd7fce6b88..d84de3f09314015b067dfd9d39552c652a96598d 100644 (file)
@@ -251,11 +251,9 @@ qemuBuildVsockDevProps(virDomainDef *def,
 /* this function is exported so that tests can mock the FDs */
 int
 qemuBuildTPMOpenBackendFDs(const char *tpmdev,
-                           const char *cancel_path,
                            int *tpmfd,
                            int *cancelfd)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
-    ATTRIBUTE_NONNULL(4) G_GNUC_NO_INLINE;
+    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) G_GNUC_NO_INLINE;
 
 const char * qemuAudioDriverTypeToString(virDomainAudioType type);
 virDomainAudioType qemuAudioDriverTypeFromString(const char *str);
index f4e2f52680a0b7a2d4ba18f3d33bbbba5f27a8f6..08f176667daa254ec6e8635c5add3816d9aa957b 100644 (file)
@@ -263,7 +263,6 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev G_GNUC_UNUSED)
 
 int
 qemuBuildTPMOpenBackendFDs(const char *tpmdev G_GNUC_UNUSED,
-                           const char *cancel_path G_GNUC_UNUSED,
                            int *tpmfd,
                            int *cancelfd)
 {