[PATCH] xen-platform: Cleanup network infrastructure when emulated NICs are unplugged

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] xen-platform: Cleanup network infrastructure when emulated NICs are unplugged

Ross Lagerwall
When the guest unplugs the emulated NICs, call net_cleanup() to cleanup
the network infrastructure in QEMU as it is not needed anymore. Most
importantly, this allows the tap interfaces which QEMU holds open to be
closed and removed.

Signed-off-by: Ross Lagerwall <[hidden email]>
---
 hw/i386/xen/xen_platform.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
index 1419fc9..180abc7 100644
--- a/hw/i386/xen/xen_platform.c
+++ b/hw/i386/xen/xen_platform.c
@@ -105,6 +105,7 @@ static void unplug_nic(PCIBus *b, PCIDevice *d, void *o)
 static void pci_unplug_nics(PCIBus *bus)
 {
     pci_for_each_device(bus, 0, unplug_nic, NULL);
+    net_cleanup();
 }
 
 static void unplug_disks(PCIBus *b, PCIDevice *d, void *opaque)
--
2.9.4


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] xen-platform: Cleanup network infrastructure when emulated NICs are unplugged

Anthony PERARD-2
On Mon, Jun 19, 2017 at 09:19:45AM +0100, Ross Lagerwall wrote:

> When the guest unplugs the emulated NICs, call net_cleanup() to cleanup
> the network infrastructure in QEMU as it is not needed anymore. Most
> importantly, this allows the tap interfaces which QEMU holds open to be
> closed and removed.
>
> Signed-off-by: Ross Lagerwall <[hidden email]>
> ---
>  hw/i386/xen/xen_platform.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
> index 1419fc9..180abc7 100644
> --- a/hw/i386/xen/xen_platform.c
> +++ b/hw/i386/xen/xen_platform.c
> @@ -105,6 +105,7 @@ static void unplug_nic(PCIBus *b, PCIDevice *d, void *o)
>  static void pci_unplug_nics(PCIBus *bus)
>  {
>      pci_for_each_device(bus, 0, unplug_nic, NULL);
> +    net_cleanup();

This makes QEMU segv when QEMU is shutting down. When net_cleanup() is
called a second time, qemu crash. That probably not a good sign, even if
the guest continue to live after a reboot or a migration.

--
Anthony PERARD