From: Ján Tomko Date: Wed, 30 May 2018 10:52:51 +0000 (+0200) Subject: qemu: Add prefix for vsock vhostfd X-Git-Tag: v4.5.0-rc1~357 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ecafb4a2b9492c581e7f19dbd9dcd7d9bb104f1;p=thirdparty%2Flibvirt.git qemu: Add prefix for vsock vhostfd Alter qemuBuildVsockDevStr to allow passing a prefix for the vhostfd file descriptor name. Domain startup uses the numeric value of fd without a prefix, but hotplug will need to use a prefix because passed file descriptor names cannot start with a number. https://bugzilla.redhat.com/show_bug.cgi?id=1291851 Signed-off-by: Ján Tomko Reviewed-by: John Ferlan --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3269c08806..89cd931de6 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9915,7 +9915,8 @@ qemuBuildSeccompSandboxCommandLine(virCommandPtr cmd, static char * qemuBuildVsockDevStr(virDomainDefPtr def, virDomainVsockDefPtr vsock, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + const char *fdprefix) { qemuDomainVsockPrivatePtr priv = (qemuDomainVsockPrivatePtr)vsock->privateData; virBuffer buf = VIR_BUFFER_INITIALIZER; @@ -9925,7 +9926,7 @@ qemuBuildVsockDevStr(virDomainDefPtr def, virBufferAsprintf(&buf, "%s", device); virBufferAsprintf(&buf, ",id=%s", vsock->info.alias); virBufferAsprintf(&buf, ",guest-cid=%u", vsock->guest_cid); - virBufferAsprintf(&buf, ",vhostfd=%u", priv->vhostfd); + virBufferAsprintf(&buf, ",vhostfd=%s%u", fdprefix, priv->vhostfd); if (qemuBuildDeviceAddressStr(&buf, def, &vsock->info, qemuCaps) < 0) goto cleanup; @@ -9950,7 +9951,7 @@ qemuBuildVsockCommandLine(virCommandPtr cmd, char *devstr = NULL; int ret = -1; - if (!(devstr = qemuBuildVsockDevStr(def, vsock, qemuCaps))) + if (!(devstr = qemuBuildVsockDevStr(def, vsock, qemuCaps, ""))) goto cleanup; virCommandPassFD(cmd, priv->vhostfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT);