From 7ecafb4a2b9492c581e7f19dbd9dcd7d9bb104f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Wed, 30 May 2018 12:52:51 +0200 Subject: [PATCH] qemu: Add prefix for vsock vhostfd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/qemu/qemu_command.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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); -- GitLab