qemuBuildTPMOpenBackendFDs: Construct 'cancel_path' internally

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>
This commit is contained in:
Peter Krempa 2022-02-09 13:49:03 +01:00
parent d42be77208
commit 4225de7c73
3 changed files with 8 additions and 12 deletions

View 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);

View 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);

View 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)
{