Re: [PATCH RFC] virtio: wrap config->reset calls

From: Michael S. Tsirkin
Date: Wed Oct 13 2021 - 08:18:15 EST


On Wed, Oct 13, 2021 at 01:03:46PM +0200, David Hildenbrand wrote:
> On 13.10.21 12:55, Michael S. Tsirkin wrote:
> > This will enable cleanups down the road.
> > The idea is to disable cbs, then add "flush_queued_cbs" callback
> > as a parameter, this way drivers can flush any work
> > queued after callbacks have been disabled.
> >
> > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
> > ---
> > arch/um/drivers/virt-pci.c | 2 +-
> > drivers/block/virtio_blk.c | 4 ++--
> > drivers/bluetooth/virtio_bt.c | 2 +-
> > drivers/char/hw_random/virtio-rng.c | 2 +-
> > drivers/char/virtio_console.c | 4 ++--
> > drivers/crypto/virtio/virtio_crypto_core.c | 8 ++++----
> > drivers/firmware/arm_scmi/virtio.c | 2 +-
> > drivers/gpio/gpio-virtio.c | 2 +-
> > drivers/gpu/drm/virtio/virtgpu_kms.c | 2 +-
> > drivers/i2c/busses/i2c-virtio.c | 2 +-
> > drivers/iommu/virtio-iommu.c | 2 +-
> > drivers/net/caif/caif_virtio.c | 2 +-
> > drivers/net/virtio_net.c | 4 ++--
> > drivers/net/wireless/mac80211_hwsim.c | 2 +-
> > drivers/nvdimm/virtio_pmem.c | 2 +-
> > drivers/rpmsg/virtio_rpmsg_bus.c | 2 +-
> > drivers/scsi/virtio_scsi.c | 2 +-
> > drivers/virtio/virtio.c | 5 +++++
> > drivers/virtio/virtio_balloon.c | 2 +-
> > drivers/virtio/virtio_input.c | 2 +-
> > drivers/virtio/virtio_mem.c | 2 +-
> > fs/fuse/virtio_fs.c | 4 ++--
> > include/linux/virtio.h | 1 +
> > net/9p/trans_virtio.c | 2 +-
> > net/vmw_vsock/virtio_transport.c | 4 ++--
> > sound/virtio/virtio_card.c | 4 ++--
> > 26 files changed, 39 insertions(+), 33 deletions(-)
> >
> > diff --git a/arch/um/drivers/virt-pci.c b/arch/um/drivers/virt-pci.c
> > index c08066633023..22c4d87c9c15 100644
> > --- a/arch/um/drivers/virt-pci.c
> > +++ b/arch/um/drivers/virt-pci.c
> > @@ -616,7 +616,7 @@ static void um_pci_virtio_remove(struct virtio_device *vdev)
> > int i;
> > /* Stop all virtqueues */
> > - vdev->config->reset(vdev);
> > + virtio_reset_device(vdev);
> > vdev->config->del_vqs(vdev);
>
> Nit: virtio_device_reset()?
>
> Because I see:
>
> int virtio_device_freeze(struct virtio_device *dev);
> int virtio_device_restore(struct virtio_device *dev);
> void virtio_device_ready(struct virtio_device *dev)
>
> But well, there is:
> void virtio_break_device(struct virtio_device *dev);

Exactly. I don't know what's best, so I opted for plain english :)


> --
> Thanks,
>
> David / dhildenb