Re: [PATCH v12 22/24] vfio: Remove vfio_device_is_noiommu()

Alex Williamson
2023-06-12T22:46:58Z

On Fri, 2 Jun 2023 05:16:51 -0700
Yi Liu <yi.l.liu@intel.com> wrote:

> This converts noiommu test to use vfio_device->noiommu flag. Per this
> change, vfio_device_is_noiommu() is removed.
>
> Signed-off-by: Yi Liu <yi.l.liu@intel.com>
> ---
> drivers/vfio/group.c | 2 +-
> drivers/vfio/iommufd.c | 4 ++--
> drivers/vfio/vfio.h | 9 ++-------
> 3 files changed, 5 insertions(+), 10 deletions(-)

Drop this as well. You can see here all the code paths that wouldn't
have even been compiled with CONFIG_VFIO_NOIOMMU unset. Thanks,

Alex

> diff --git a/drivers/vfio/group.c b/drivers/vfio/group.c
> index 64cdd0ea8825..08d37811507e 100644
> --- a/drivers/vfio/group.c
> +++ b/drivers/vfio/group.c
> @@ -191,7 +191,7 @@ static int vfio_df_group_open(struct vfio_device_file *df)
> vfio_device_group_get_kvm_safe(device);
>
> df->iommufd = device->group->iommufd;
> - if (df->iommufd && vfio_device_is_noiommu(device) && device->open_count == 0) {
> + if (df->iommufd && device->noiommu && device->open_count == 0) {
> /*
> * Require no compat ioas to be assigned to proceed. The basic
> * statement is that the user cannot have done something that
> diff --git a/drivers/vfio/iommufd.c b/drivers/vfio/iommufd.c
> index a59ed4f881aa..fac8ca74ec85 100644
> --- a/drivers/vfio/iommufd.c
> +++ b/drivers/vfio/iommufd.c
> @@ -37,7 +37,7 @@ int vfio_iommufd_compat_attach_ioas(struct vfio_device *vdev,
> lockdep_assert_held(&vdev->dev_set->lock);
>
> /* compat noiommu does not need to do ioas attach */
> - if (vfio_device_is_noiommu(vdev))
> + if (vdev->noiommu)
> return 0;
>
> ret = iommufd_vfio_compat_ioas_get_id(ictx, &ioas_id);
> @@ -54,7 +54,7 @@ void vfio_df_iommufd_unbind(struct vfio_device_file *df)
>
> lockdep_assert_held(&vdev->dev_set->lock);
>
> - if (vfio_device_is_noiommu(vdev))
> + if (vdev->noiommu)
> return;
>
> if (vdev->ops->unbind_iommufd)
> diff --git a/drivers/vfio/vfio.h b/drivers/vfio/vfio.h
> index 1b89e8bc8571..b138b8334fe0 100644
> --- a/drivers/vfio/vfio.h
> +++ b/drivers/vfio/vfio.h
> @@ -106,11 +106,6 @@ bool vfio_device_has_container(struct vfio_device *device);
> int __init vfio_group_init(void);
> void vfio_group_cleanup(void);
>
> -static inline bool vfio_device_is_noiommu(struct vfio_device *vdev)
> -{
> - return vdev->group->type == VFIO_NO_IOMMU;
> -}
> -
> #if IS_ENABLED(CONFIG_VFIO_CONTAINER)
> /**
> * struct vfio_iommu_driver_ops - VFIO IOMMU driver callbacks
> @@ -271,7 +266,7 @@ void vfio_init_device_cdev(struct vfio_device *device);
> static inline int vfio_device_add(struct vfio_device *device)
> {
> /* cdev does not support noiommu device */
> - if (vfio_device_is_noiommu(device))
> + if (device->noiommu)
> return device_add(&device->device);
> vfio_init_device_cdev(device);
> return cdev_device_add(&device->cdev, &device->device);
> @@ -279,7 +274,7 @@ static inline int vfio_device_add(struct vfio_device *device)
>
> static inline void vfio_device_del(struct vfio_device *device)
> {
> - if (vfio_device_is_noiommu(device))
> + if (device->noiommu)
> device_del(&device->device);
> else
> cdev_device_del(&device->cdev, &device->device);