On Thu, Jan 11, 2024 at 09:14:37AM +0000, Li,Rongqing wrote: > Revert "virtio_pci: Support surprise removal of virtio pci device" > > This reverts commit 43bb40c5b92659966bdf4bfe584fde0a3575a049. > > Marking the device as broken will cause the uncompleted IO request on > virtio-blk since virtblk_done will not continue when it find the broken virtqueu > at last it will cause the failure of removal of virtio-blk device because of > uncompleted IO request > > The correct fix for the issue that commit 43bb40c5b9 ("virtio_pci: > Support surprise removal of virtio pci device") tried to fix > is that virtio backend always complete the IO request as soon as possible > > Signed-off-by: Li RongQing <lirongqing@xxxxxxxxx> > --- > drivers/virtio/virtio_pci_common.c | 7 ------- > 1 file changed, 7 deletions(-) > > diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c > index 7a55939..d60fe99 100644 > --- a/drivers/virtio/virtio_pci_common.c > +++ b/drivers/virtio/virtio_pci_common.c > @@ -584,13 +584,6 @@ static void virtio_pci_remove(struct pci_dev *pci_dev) > struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); > struct device *dev = get_device(&vp_dev->vdev.dev); > > - /* > - * Device is marked broken on surprise removal so that virtio upper > - * layers can abort any ongoing operation. > - */ > - if (!pci_device_is_present(pci_dev)) > - virtio_break_device(&vp_dev->vdev); > - > pci_disable_sriov(pci_dev); Maybe break device is not the right thing to do. Indeed, request buffers which have been already used are not completed by driver. Just removing this is not good since you can then get more requests and the device is gone. > unregister_virtio_device(&vp_dev->vdev); > -- > 2.9.4