[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 14/17] net: do not delete nics in net_cleanup()
From: |
David Woodhouse |
Subject: |
Re: [PATCH v4 14/17] net: do not delete nics in net_cleanup() |
Date: |
Tue, 07 Nov 2023 09:26:16 +0000 |
User-agent: |
Evolution 3.44.4-0ubuntu2 |
On Mon, 2023-11-06 at 14:35 +0000, David Woodhouse wrote:
> From: David Woodhouse <dwmw@amazon.co.uk>
>
> In net_cleanup() we only need to delete the netdevs, as those may have
> state which outlives Qemu when it exits, and thus may actually need to
> be cleaned up on exit.
>
> The nics, on the other hand, are owned by the device which created them.
> Most devices don't bother to clean up on exit because they don't have
> any state which will outlive Qemu... but XenBus devices do need to clean
> up their nodes in XenStore, and do have an exit handler to delete them.
>
> When the XenBus exit handler destroys the xen-net-device, it attempts
> to delete its nic after net_cleanup() had already done so. And crashes.
>
> Fix this by only deleting netdevs as we walk the list. As the comment
> notes, we can't use QTAILQ_FOREACH_SAFE() as each deletion may remove
> *multiple* entries, including the "safely" saved 'next' pointer. But
> we can store the *previous* entry, since nics are safe.
>
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> Reviewed-by: Paul Durrant <paul@xen.org>
I've left this out of the pull request I've just sent, pending Jason's
approval for it. As it's a bugfix, I don't think we strictly has to be
in by *today*, right? We still have a little time?
smime.p7s
Description: S/MIME cryptographic signature
- [PATCH v4 09/17] hw/xen: update Xen console to XenDevice model, (continued)
- [PATCH v4 09/17] hw/xen: update Xen console to XenDevice model, David Woodhouse, 2023/11/06
- [PATCH v4 07/17] hw/xen: add get_frontend_path() method to XenDeviceClass, David Woodhouse, 2023/11/06
- [PATCH v4 10/17] hw/xen: add support for Xen primary console in emulated mode, David Woodhouse, 2023/11/06
- [PATCH v4 16/17] doc/sphinx/hxtool.py: add optional label argument to SRST directive, David Woodhouse, 2023/11/06
- [PATCH v4 13/17] hw/i386/pc: support '-nic' for xen-net-device, David Woodhouse, 2023/11/06
- [PATCH v4 15/17] xen-platform: unplug AHCI disks, David Woodhouse, 2023/11/06
- [PATCH v4 14/17] net: do not delete nics in net_cleanup(), David Woodhouse, 2023/11/06
- Re: [PATCH v4 14/17] net: do not delete nics in net_cleanup(),
David Woodhouse <=
- [PATCH v4 08/17] hw/xen: do not repeatedly try to create a failing backend device, David Woodhouse, 2023/11/06
- [PATCH v4 17/17] docs: update Xen-on-KVM documentation, David Woodhouse, 2023/11/06
- [PATCH v4 11/17] hw/xen: only remove peers of PCI NICs on unplug, David Woodhouse, 2023/11/06
- [PATCH v4 12/17] hw/xen: update Xen PV NIC to XenDevice model, David Woodhouse, 2023/11/06