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

dongsheng li posted 1 patch 4 years, 5 months ago
drivers/virtio/virtio_vdpa.c | 1 +
1 file changed, 1 insertion(+)
[PATCH v2] virtio_vdpa: Support surprise removal of virtio vdpa device
Posted by dongsheng li 4 years, 5 months ago
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 <lidongsheng@dayudpu.com>
---
 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

Re: [PATCH v2] virtio_vdpa: Support surprise removal of virtio vdpa device
Posted by Michael S. Tsirkin 4 years, 5 months ago
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 <lidongsheng@dayudpu.com>

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