]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Add prefix for vsock vhostfd
authorJán Tomko <jtomko@redhat.com>
Wed, 30 May 2018 10:52:51 +0000 (12:52 +0200)
committerJán Tomko <jtomko@redhat.com>
Tue, 5 Jun 2018 05:34:11 +0000 (07:34 +0200)
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 <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
src/qemu/qemu_command.c

index 3269c088065e15a03c66cd5ddbc70cdba71f1a75..89cd931de6dcedfb39ddfb8443030cbc49457503 100644 (file)
@@ -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);