[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] xen-platform: Cleanup network infrastructure
From: |
Anthony PERARD |
Subject: |
Re: [Qemu-devel] [PATCH v2] xen-platform: Cleanup network infrastructure when emulated NICs are unplugged |
Date: |
Fri, 7 Jul 2017 16:33:13 +0100 |
User-agent: |
Mutt/1.8.3 (2017-05-23) |
On Fri, Jun 30, 2017 at 01:50:28PM +0100, Ross Lagerwall wrote:
> When the guest unplugs the emulated NICs, cleanup the peer for each NIC
> 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 <address@hidden>
> ---
>
> In v2: Don't call nic_cleanup(), just remove the peer of the NIC which
> will cleanup up the tap devices. This means that QEMU doesn't segv
> when shutting down.
>
> hw/i386/xen/xen_platform.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
> index 1419fc9..f231558 100644
> --- a/hw/i386/xen/xen_platform.c
> +++ b/hw/i386/xen/xen_platform.c
> @@ -102,8 +102,19 @@ static void unplug_nic(PCIBus *b, PCIDevice *d, void *o)
> }
> }
>
> +/* Remove the peer of the NIC device. Normally, this would be a tap device.
> */
> +static void del_nic_peer(NICState *nic, void *opaque)
> +{
> + NetClientState *nc;
> +
> + nc = qemu_get_queue(nic);
> + if (nc->peer)
> + qemu_del_net_client(nc->peer);
> +}
> +
> static void pci_unplug_nics(PCIBus *bus)
> {
> + qemu_foreach_nic(del_nic_peer, NULL);
> pci_for_each_device(bus, 0, unplug_nic, NULL);
I don't know if it a good idee to clean every NIC (using
qemu_foreach_nic) vs only clean NIC that have a PCI device (having
unplug_nic cleanup the peer). But I cannot think of a scenario with xen
where a nic is not also a pci device.
Anyway, this patch works:
Acked-by: Anthony PERARD <address@hidden>
--
Anthony PERARD
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v2] xen-platform: Cleanup network infrastructure when emulated NICs are unplugged,
Anthony PERARD <=