summaryrefslogtreecommitdiff
path: root/net.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2010-06-11 14:21:34 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2010-06-14 11:12:53 -0500
commit2ffcb18de0bc02ad8a836ec955584c02b70e0e24 (patch)
treea5d5af4f500099f9a6964241bd11963c027e17bb /net.c
parent40ac17cd56eb5c5a89559ea0fa53f7eea80cbd07 (diff)
downloadqemu-2ffcb18de0bc02ad8a836ec955584c02b70e0e24.tar.gz
qemu-2ffcb18de0bc02ad8a836ec955584c02b70e0e24.tar.bz2
qemu-2ffcb18de0bc02ad8a836ec955584c02b70e0e24.zip
Make netdev_del delete the netdev even when it's in use
To hot-unplug guest and host part of a network device, you do: device_del NIC-ID netdev_del NETDEV-ID For PCI devices, device_del merely tells ACPI to unplug the device. The device goes away for real only after the guest processed the ACPI unplug event. You have to wait until then (e.g. by polling info pci) before you can unplug the netdev. Not good. Fix by removing the "in use" check from do_netdev_del(). Deleting a netdev while it's in use is safe; packets simply get routed to the bit bucket. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'net.c')
-rw-r--r--net.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/net.c b/net.c
index 4cb93ed5b7..0703698ca7 100644
--- a/net.c
+++ b/net.c
@@ -1221,10 +1221,6 @@ int do_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret_data)
qerror_report(QERR_DEVICE_NOT_FOUND, id);
return -1;
}
- if (vc->peer) {
- qerror_report(QERR_DEVICE_IN_USE, id);
- return -1;
- }
qemu_del_vlan_client(vc);
qemu_opts_del(qemu_opts_find(&qemu_netdev_opts, id));
return 0;