diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 71cb091ee1..5d4385b81e 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -8236,9 +8236,9 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver, unsigned int queues = net->driver.virtio.queues; char *nic = NULL; - if (!qemuDomainSupportsNetdev(def, qemuCaps, net)) { + if (!qemuDomainSupportsNicdev(def, net)) { virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("Netdev support unavailable")); + "%s", _("Nicdev support unavailable")); goto error; } @@ -8574,20 +8574,19 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, /* Possible combinations: * * 1. Old way: -net nic,model=e1000,vlan=1 -net tap,vlan=1 - * 2. Semi-new: -device e1000,vlan=1 -net tap,vlan=1 - * 3. Best way: -netdev type=tap,id=netdev1 -device e1000,id=netdev1 + * 2. New way: -netdev type=tap,id=netdev1 -device e1000,id=netdev1 * - * NB, no support for -netdev without use of -device + * NB: The backend and frontend are reversed above */ - if (qemuDomainSupportsNetdev(def, qemuCaps, net)) { + + if (qemuDomainSupportsNicdev(def, net)) { if (!(host = qemuBuildHostNetStr(net, driver, ',', vlan, tapfdName, tapfdSize, vhostfdName, vhostfdSize))) goto cleanup; virCommandAddArgList(cmd, "-netdev", host, NULL); - } - if (qemuDomainSupportsNicdev(def, net)) { + if (!(nic = qemuBuildNicDevStr(def, net, vlan, bootindex, vhostfdSize, qemuCaps))) goto cleanup; @@ -8596,8 +8595,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, if (!(nic = qemuBuildNicStr(net, "nic,", vlan))) goto cleanup; virCommandAddArgList(cmd, "-net", nic, NULL); - } - if (!qemuDomainSupportsNetdev(def, qemuCaps, net)) { + if (!(host = qemuBuildHostNetStr(net, driver, ',', vlan, tapfdName, tapfdSize, @@ -8676,8 +8674,8 @@ qemuBuildNetCommandLine(virQEMUDriverPtr driver, virDomainNetDefPtr net = def->nets[i]; int vlan; - /* VLANs are not used with -netdev, so don't record them */ - if (qemuDomainSupportsNetdev(def, qemuCaps, net)) + /* VLANs are not used with -netdev and -device, so don't record them */ + if (qemuDomainSupportsNicdev(def, net)) vlan = -1; else vlan = i; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 4f7726f76a..7000de6a91 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -9176,16 +9176,6 @@ qemuDomainSupportsNicdev(virDomainDefPtr def, return true; } -bool -qemuDomainSupportsNetdev(virDomainDefPtr def, - virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED, - virDomainNetDefPtr net) -{ - if (!qemuDomainSupportsNicdev(def, net)) - return false; - return true; -} - bool qemuDomainNetSupportsMTU(virDomainNetType type) { diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index ce8f69d336..be9aff180b 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -799,10 +799,6 @@ int qemuDomainRefreshVcpuHalted(virQEMUDriverPtr driver, bool qemuDomainSupportsNicdev(virDomainDefPtr def, virDomainNetDefPtr net); -bool qemuDomainSupportsNetdev(virDomainDefPtr def, - virQEMUCapsPtr qemuCaps, - virDomainNetDefPtr net); - bool qemuDomainNetSupportsMTU(virDomainNetType type); int qemuDomainSetPrivatePaths(virQEMUDriverPtr driver, diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index c145c42bcd..9c52bccdf1 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -956,9 +956,9 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, queueSize = net->driver.virtio.queues; if (!queueSize) queueSize = 1; - if (!qemuDomainSupportsNetdev(vm->def, priv->qemuCaps, net)) { + if (!qemuDomainSupportsNicdev(vm->def, net)) { virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("Netdev support unavailable")); + "%s", _("Nicdev support unavailable")); goto cleanup; } diff --git a/src/qemu/qemu_interface.c b/src/qemu/qemu_interface.c index cebb490221..2a11cda5c9 100644 --- a/src/qemu/qemu_interface.c +++ b/src/qemu/qemu_interface.c @@ -642,11 +642,11 @@ qemuInterfaceOpenVhostNet(virDomainDefPtr def, return 0; } - /* If qemu doesn't support vhost-net mode (including the -netdev command - * option), don't try to open the device. + /* If qemu doesn't support vhost-net mode (including the -netdev and + * -device command options), don't try to open the device. */ if (!(virQEMUCapsGet(qemuCaps, QEMU_CAPS_VHOST_NET) && - qemuDomainSupportsNetdev(def, qemuCaps, net))) { + qemuDomainSupportsNicdev(def, net))) { if (net->driver.virtio.name == VIR_DOMAIN_NET_BACKEND_TYPE_VHOST) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("vhost-net is not supported with "