This will be reused by hotplug code. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_command.c | 20 ++++++++++++++++---- src/qemu/qemu_command.h | 3 +++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index cdf2f91ece..a742998e4c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5344,6 +5344,21 @@ qemuBuildHostdevCommandLine(virCommand *cmd, } +virJSONValue * +qemuBuildIOMMUFDProps(qemuFDPassDirect *iommufd) +{ + g_autoptr(virJSONValue) props = NULL; + + if (qemuMonitorCreateObjectProps(&props, "iommufd", + "iommufd0", + "S:fd", qemuFDPassDirectGetPath(iommufd), + NULL) < 0) + return NULL; + + return g_steal_pointer(&props); +} + + static int qemuBuildIOMMUFDCommandLine(virCommand *cmd, const virDomainDef *def, @@ -5357,10 +5372,7 @@ qemuBuildIOMMUFDCommandLine(virCommand *cmd, qemuFDPassDirectTransferCommand(priv->iommufd, cmd); - if (qemuMonitorCreateObjectProps(&props, "iommufd", - "iommufd0", - "S:fd", qemuFDPassDirectGetPath(priv->iommufd), - NULL) < 0) + if (!(props = qemuBuildIOMMUFDProps(priv->iommufd))) return -1; if (qemuBuildObjectCommandlineFromJSON(cmd, props) < 0) diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index ad068f1f16..028d002ef9 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -190,6 +190,9 @@ int qemuBuildRNGBackendProps(virDomainRNGDef *rng, virJSONValue **props); +virJSONValue * +qemuBuildIOMMUFDProps(qemuFDPassDirect *iommufd); + /* Current, best practice */ virJSONValue * qemuBuildUSBHostdevDevProps(const virDomainDef *def, -- 2.53.0