[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()
On Mon, 2023-11-06 at 14:35 +0000, David Woodhouse wrote: > From: David Woodhouse <dwmw@xxxxxxxxxxxx> > > 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@xxxxxxxxxxxx> > Reviewed-by: Paul Durrant <paul@xxxxxxx> 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? Attachment:
smime.p7s
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |