2022-01-11 06:56:00

by dongsheng li

[permalink] [raw]
Subject: [PATCH v2] virtio_vdpa: Support surprise removal of virtio vdpa device

When virtio vdpa device removed, the abnormal damage of the device cannot be
perceived normally, which will cause problems similar to:

Commit 43bb40c5b926 ("virtio_pci: Support surprise removal of
virtio pci device")
Hence, add the ability to abort the command on surprise removal

Signed-off-by: dongsheng li <[email protected]>
---
drivers/virtio/virtio_vdpa.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/virtio/virtio_vdpa.c b/drivers/virtio/virtio_vdpa.c
index f85f860bc10b..a5cebad09320 100644
--- a/drivers/virtio/virtio_vdpa.c
+++ b/drivers/virtio/virtio_vdpa.c
@@ -396,6 +396,7 @@ static void virtio_vdpa_remove(struct vdpa_device *vdpa)
{
struct virtio_vdpa_device *vd_dev = vdpa_get_drvdata(vdpa);

+ virtio_break_device(&vd_dev->vdev);
unregister_virtio_device(&vd_dev->vdev);
}

--
2.17.1



2022-01-11 12:12:53

by Michael S. Tsirkin

[permalink] [raw]
Subject: Re: [PATCH v2] virtio_vdpa: Support surprise removal of virtio vdpa device

On Tue, Jan 11, 2022 at 02:55:27PM +0800, dongsheng li wrote:
> When virtio vdpa device removed, the abnormal damage of the device cannot be
> perceived normally, which will cause problems similar to:
>
> Commit 43bb40c5b926 ("virtio_pci: Support surprise removal of
> virtio pci device")
> Hence, add the ability to abort the command on surprise removal
>
> Signed-off-by: dongsheng li <[email protected]>

If you don't mkae changes you can carry forward acks.

> ---
> drivers/virtio/virtio_vdpa.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/virtio/virtio_vdpa.c b/drivers/virtio/virtio_vdpa.c
> index f85f860bc10b..a5cebad09320 100644
> --- a/drivers/virtio/virtio_vdpa.c
> +++ b/drivers/virtio/virtio_vdpa.c
> @@ -396,6 +396,7 @@ static void virtio_vdpa_remove(struct vdpa_device *vdpa)
> {
> struct virtio_vdpa_device *vd_dev = vdpa_get_drvdata(vdpa);
>
> + virtio_break_device(&vd_dev->vdev);

My comment on graceful removal stands. E.g. a storage device
will want to flush out writes if possible not drop them.

> unregister_virtio_device(&vd_dev->vdev);
> }
>
> --
> 2.17.1