From 39ac323063101c67e5d930195b65cf3364e5323d Mon Sep 17 00:00:00 2001 From: zhang bo Date: Fri, 13 Mar 2015 17:17:46 +0800 Subject: [PATCH] util: vhost user: support for bootindex 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 Signed-off-by: Zhang Bo --- src/qemu/qemu_command.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 02105c3a0d..63d43d41af 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -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 || -- GitLab