Re: [RFC] Revert "virtio_pci: Support surprise removal of virtio pci

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux