2021-10-13 15:48:09

by Mathieu Poirier

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

On Wed, Oct 13, 2021 at 06:55:31AM -0400, 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 <[email protected]>
> ---
> 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(-)
>
> static struct virtio_driver virtio_pmem_driver = {
> diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
> index 8e49a3bacfc7..6a11952822df 100644
> --- a/drivers/rpmsg/virtio_rpmsg_bus.c
> +++ b/drivers/rpmsg/virtio_rpmsg_bus.c
> @@ -1015,7 +1015,7 @@ static void rpmsg_remove(struct virtio_device *vdev)
> size_t total_buf_space = vrp->num_bufs * vrp->buf_size;
> int ret;
>
> - vdev->config->reset(vdev);
> + virtio_reset_device(vdev);
>

Reviewed-by: Mathieu Poirier <[email protected]>

> ret = device_for_each_child(&vdev->dev, NULL, rpmsg_remove_device);
> if (ret)