]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: set tap device online for type='ethernet'
authorLaine Stump <laine@laine.org>
Thu, 25 Aug 2016 05:46:37 +0000 (01:46 -0400)
committerLaine Stump <laine@laine.org>
Thu, 25 Aug 2016 22:54:01 +0000 (18:54 -0400)
When support for auto-creating tap devices was added to <interface
type='ethernet'> in commit 9c17d6, the code assumed that
virNetDevTapCreate() would honor the VIR_NETDEV_TAP__CREATE_IFUP flag
that is supported by virNetDevTapCreateInBridgePort(). That isn't the
case - the latter function performs several operations, and one of
them is setting the tap device online. But virNetDevTapCreate() *only*
creates the tap device, and relies on the caller to do everything
else, so qemuInterfaceEthernetConnect() needs to call
virNetDevSetOnline() after the device is successfully created.

src/qemu/qemu_interface.c

index e327133308785bfadac464a6cb4413e964c90189..455c2d05322f0dac0656455bb885e3b78392b592 100644 (file)
@@ -453,6 +453,9 @@ qemuInterfaceEthernetConnect(virDomainDefPtr def,
     if (virNetDevSetMAC(net->ifname, &tapmac) < 0)
         goto cleanup;
 
+    if (virNetDevSetOnline(net->ifname, true) < 0)
+        goto cleanup;
+
     if (net->script &&
         virNetDevRunEthernetScript(net->ifname, net->script) < 0)
         goto cleanup;