The linkstate setting of an <interface> is only meant to change the
online status reported to the guest system by the emulated network
device driver in qemu, but when support for auto-creating tap devices
for <interface type='ethernet'> was added in commit 9717d6, a chunk of
code was also added to qemuDomainChangeNetLinkState() that sets the
online status of the tap device (i.e. the *host* side of the
interface) for type='ethernet'. This was never done for tap devices
used in type='bridge' or type='network' interfaces, nor was it done in
the past for tap devices created by external scripts for
type='ethernet', so we shouldn't be doing it now.
This patch removes the bit of code in qemuDomainChangeNetLinkState()
that modifies online status of the tap device.
---
src/qemu/qemu_hotplug.c | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 00e4a75..5300bc1 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -2324,21 +2324,6 @@ int qemuDomainChangeNetLinkState(virQEMUDriverPtr driver,
if (ret < 0)
goto cleanup;
- if (virDomainNetGetActualType(dev) == VIR_DOMAIN_NET_TYPE_ETHERNET) {
- switch (linkstate) {
- case VIR_DOMAIN_NET_INTERFACE_LINK_STATE_UP:
- case VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DEFAULT:
- if ((ret = virNetDevSetOnline(dev->ifname, true)) < 0)
- goto cleanup;
- break;
-
- case VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN:
- if ((ret = virNetDevSetOnline(dev->ifname, false)) < 0)
- goto cleanup;
- break;
- }
- }
-
/* modify the device configuration */
dev->linkstate = linkstate;
--
2.7.4