]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: vhost user: support for bootindex
authorzhang bo <oscar.zhangbo@huawei.com>
Fri, 13 Mar 2015 09:17:46 +0000 (17:17 +0800)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 18 Mar 2015 17:39:09 +0000 (18:39 +0100)
Problem Description:
When we set boot order for a vhost-user network interface, we found the boot index
doesn't work.

Cause of the Problem:
In the function qemuBuildVhostuserCommandLine(), it forcely set the arg bootindex of
function qemuBuildNicDevStr() to 0. Thus, the bootindex parameter got missing.

Solution:
Trans the arg bootindex down.

Signed-off-by: Gao Haifeng <gaohaifeng.gao@huawei.com>
Signed-off-by: Zhang Bo <oscar.zhangbo@huawei.com>
src/qemu/qemu_command.c

index 02105c3a0d603e1ebfe895960591b47626f7ea5e..63d43d41aff56fd5957cd3e3b71b88c7fde9c6de 100644 (file)
@@ -7763,7 +7763,8 @@ static int
 qemuBuildVhostuserCommandLine(virCommandPtr cmd,
                               virDomainDefPtr def,
                               virDomainNetDefPtr net,
-                              virQEMUCapsPtr qemuCaps)
+                              virQEMUCapsPtr qemuCaps,
+                              int bootindex)
 {
     virBuffer chardev_buf = VIR_BUFFER_INITIALIZER;
     virBuffer netdev_buf = VIR_BUFFER_INITIALIZER;
@@ -7810,7 +7811,7 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
     virCommandAddArg(cmd, "-netdev");
     virCommandAddArgBuffer(cmd, &netdev_buf);
 
-    if (!(nic = qemuBuildNicDevStr(def, net, -1, 0, 0, qemuCaps))) {
+    if (!(nic = qemuBuildNicDevStr(def, net, -1, bootindex, 0, qemuCaps))) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        "%s", _("Error generating NIC -device string"));
         goto error;
@@ -7855,8 +7856,12 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
     virNetDevBandwidthPtr actualBandwidth;
     size_t i;
 
+
+    if (!bootindex)
+        bootindex = net->info.bootIndex;
+
     if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER)
-        return qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps);
+        return qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps, bootindex);
 
     if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
         /* NET_TYPE_HOSTDEV devices are really hostdev devices, so
@@ -7865,9 +7870,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
         return 0;
     }
 
-    if (!bootindex)
-        bootindex = net->info.bootIndex;
-
     /* Currently nothing besides TAP devices supports multiqueue. */
     if (net->driver.virtio.queues > 0 &&
         !(actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||