On 13.03.2015 10:17, zhang bo wrote: > 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@xxxxxxxxxx> > Signed-off-by: Zhang Bo <oscar.zhangbo@xxxxxxxxxx> > --- > 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 5303de5..2f37812 100644 > --- a/src/qemu/qemu_command.c > +++ b/src/qemu/qemu_command.c > @@ -7767,7 +7767,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; > @@ -7814,7 +7815,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; > @@ -7859,8 +7860,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 > @@ -7869,9 +7874,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 || > ACKed and pushed. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list