vfio: Remove device_data from the vfio bus driver API
authorJason Gunthorpe <jgg@nvidia.com>
Tue, 30 Mar 2021 15:53:08 +0000 (09:53 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Tue, 6 Apr 2021 17:55:11 +0000 (11:55 -0600)
There are no longer any users, so it can go away. Everything is using
container_of now.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Message-Id: <14-v3-225de1400dfc+4e074-vfio1_jgg@nvidia.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Documentation/driver-api/vfio.rst
drivers/vfio/fsl-mc/vfio_fsl_mc.c
drivers/vfio/mdev/vfio_mdev.c
drivers/vfio/pci/vfio_pci.c
drivers/vfio/platform/vfio_platform_common.c
drivers/vfio/vfio.c
include/linux/vfio.h

index 3337f33..decc68c 100644 (file)
@@ -254,8 +254,7 @@ vfio_unregister_group_dev() respectively::
 
        void vfio_init_group_dev(struct vfio_device *device,
                                struct device *dev,
-                               const struct vfio_device_ops *ops,
-                               void *device_data);
+                               const struct vfio_device_ops *ops);
        int vfio_register_group_dev(struct vfio_device *device);
        void vfio_unregister_group_dev(struct vfio_device *device);
 
index 45f397c..980e595 100644 (file)
@@ -75,7 +75,8 @@ static int vfio_fsl_mc_reflck_attach(struct vfio_fsl_mc_device *vdev)
                        goto unlock;
                }
 
-               cont_vdev = vfio_device_data(device);
+               cont_vdev =
+                       container_of(device, struct vfio_fsl_mc_device, vdev);
                if (!cont_vdev || !cont_vdev->reflck) {
                        vfio_device_put(device);
                        ret = -ENODEV;
@@ -630,7 +631,7 @@ static int vfio_fsl_mc_probe(struct fsl_mc_device *mc_dev)
                goto out_group_put;
        }
 
-       vfio_init_group_dev(&vdev->vdev, dev, &vfio_fsl_mc_ops, vdev);
+       vfio_init_group_dev(&vdev->vdev, dev, &vfio_fsl_mc_ops);
        vdev->mc_dev = mc_dev;
        mutex_init(&vdev->igate);
 
index 11b3e15..ae7e322 100644 (file)
@@ -134,7 +134,7 @@ static int vfio_mdev_probe(struct device *dev)
        if (!vdev)
                return -ENOMEM;
 
-       vfio_init_group_dev(vdev, &mdev->dev, &vfio_mdev_dev_ops, mdev);
+       vfio_init_group_dev(vdev, &mdev->dev, &vfio_mdev_dev_ops);
        ret = vfio_register_group_dev(vdev);
        if (ret) {
                kfree(vdev);
index 1f70387..55ef27a 100644 (file)
@@ -2022,7 +2022,7 @@ static int vfio_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                goto out_group_put;
        }
 
-       vfio_init_group_dev(&vdev->vdev, &pdev->dev, &vfio_pci_ops, vdev);
+       vfio_init_group_dev(&vdev->vdev, &pdev->dev, &vfio_pci_ops);
        vdev->pdev = pdev;
        vdev->irq_type = VFIO_PCI_NUM_IRQS;
        mutex_init(&vdev->igate);
index f5f6b53..361e5b5 100644 (file)
@@ -666,7 +666,7 @@ int vfio_platform_probe_common(struct vfio_platform_device *vdev,
        struct iommu_group *group;
        int ret;
 
-       vfio_init_group_dev(&vdev->vdev, dev, &vfio_platform_ops, vdev);
+       vfio_init_group_dev(&vdev->vdev, dev, &vfio_platform_ops);
 
        ret = vfio_platform_acpi_probe(vdev, dev);
        if (ret)
index e6f5109..5e631c3 100644 (file)
@@ -741,12 +741,11 @@ static int vfio_iommu_group_notifier(struct notifier_block *nb,
  * VFIO driver API
  */
 void vfio_init_group_dev(struct vfio_device *device, struct device *dev,
-                        const struct vfio_device_ops *ops, void *device_data)
+                        const struct vfio_device_ops *ops)
 {
        init_completion(&device->comp);
        device->dev = dev;
        device->ops = ops;
-       device->device_data = device_data;
 }
 EXPORT_SYMBOL_GPL(vfio_init_group_dev);
 
@@ -851,15 +850,6 @@ static struct vfio_device *vfio_device_get_from_name(struct vfio_group *group,
        return device;
 }
 
-/*
- * Caller must hold a reference to the vfio_device
- */
-void *vfio_device_data(struct vfio_device *device)
-{
-       return device->device_data;
-}
-EXPORT_SYMBOL_GPL(vfio_device_data);
-
 /*
  * Decrement the device reference count and wait for the device to be
  * removed.  Open file descriptors for the device... */
index 784c34c..a2c5b30 100644 (file)
@@ -24,7 +24,6 @@ struct vfio_device {
        refcount_t refcount;
        struct completion comp;
        struct list_head group_next;
-       void *device_data;
 };
 
 /**
@@ -61,12 +60,11 @@ extern struct iommu_group *vfio_iommu_group_get(struct device *dev);
 extern void vfio_iommu_group_put(struct iommu_group *group, struct device *dev);
 
 void vfio_init_group_dev(struct vfio_device *device, struct device *dev,
-                        const struct vfio_device_ops *ops, void *device_data);
+                        const struct vfio_device_ops *ops);
 int vfio_register_group_dev(struct vfio_device *device);
 void vfio_unregister_group_dev(struct vfio_device *device);
 extern struct vfio_device *vfio_device_get_from_dev(struct device *dev);
 extern void vfio_device_put(struct vfio_device *device);
-extern void *vfio_device_data(struct vfio_device *device);
 
 /* events for the backend driver notify callback */
 enum vfio_iommu_notify_type {