Re: [PATCH v2 3/3] vsock/virtio: fix flush of works during the .remove()
From: Stefan Hajnoczi <hidden>
Date: 2019-07-01 15:08:40
Also in:
kvm, lkml, netdev
From: Stefan Hajnoczi <hidden>
Date: 2019-07-01 15:08:40
Also in:
kvm, lkml, netdev
On Fri, Jun 28, 2019 at 02:36:59PM +0200, Stefano Garzarella wrote:
This patch moves the flush of works after vdev->config->del_vqs(vdev), because we need to be sure that no workers run before to free the 'vsock' object. Since we stopped the workers using the [tx|rx|event]_run flags, we are sure no one is accessing the device while we are calling vdev->config->reset(vdev), so we can safely move the workers' flush.
What about send_pkt and loopback work? How were they stopped safely? For example, if send_pkt work executes then we're in trouble since it accesses the tx virtqueue which is deleted by ->del_vqs().