diff mbox series

[v2,14/14] vfio: Remove device_data from the vfio bus driver API

Message ID 14-v2-20d933792272+4ff-vfio1_jgg@nvidia.com (mailing list archive)
State New, archived
Headers show
Series Embed struct vfio_device in all sub-structures | expand

Commit Message

Jason Gunthorpe March 13, 2021, 12:56 a.m. UTC
There are no longer any users, so it can go away. Everything is using
container_of now.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
---
 Documentation/driver-api/vfio.rst            |  3 +--
 drivers/vfio/fsl-mc/vfio_fsl_mc.c            |  5 +++--
 drivers/vfio/mdev/vfio_mdev.c                |  2 +-
 drivers/vfio/pci/vfio_pci.c                  |  2 +-
 drivers/vfio/platform/vfio_platform_common.c |  2 +-
 drivers/vfio/vfio.c                          | 12 +-----------
 include/linux/vfio.h                         |  4 +---
 7 files changed, 9 insertions(+), 21 deletions(-)

Comments

Tian, Kevin March 16, 2021, 8:22 a.m. UTC | #1
> From: Jason Gunthorpe <jgg@nvidia.com>
> Sent: Saturday, March 13, 2021 8:56 AM
> 
> There are no longer any users, so it can go away. Everything is using
> container_of now.
> 
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>

Reviewed-by: Kevin Tian <kevin.tian@intel.com>

> ---
>  Documentation/driver-api/vfio.rst            |  3 +--
>  drivers/vfio/fsl-mc/vfio_fsl_mc.c            |  5 +++--
>  drivers/vfio/mdev/vfio_mdev.c                |  2 +-
>  drivers/vfio/pci/vfio_pci.c                  |  2 +-
>  drivers/vfio/platform/vfio_platform_common.c |  2 +-
>  drivers/vfio/vfio.c                          | 12 +-----------
>  include/linux/vfio.h                         |  4 +---
>  7 files changed, 9 insertions(+), 21 deletions(-)
> 
> diff --git a/Documentation/driver-api/vfio.rst b/Documentation/driver-
> api/vfio.rst
> index 3337f337293a32..decc68cb8114ac 100644
> --- a/Documentation/driver-api/vfio.rst
> +++ b/Documentation/driver-api/vfio.rst
> @@ -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);
> 
> diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc.c b/drivers/vfio/fsl-
> mc/vfio_fsl_mc.c
> index 023b2222806424..3af3ca59478f94 100644
> --- a/drivers/vfio/fsl-mc/vfio_fsl_mc.c
> +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc.c
> @@ -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;
> @@ -624,7 +625,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);
> 
> diff --git a/drivers/vfio/mdev/vfio_mdev.c b/drivers/vfio/mdev/vfio_mdev.c
> index e7309caa99c71b..71bd28f976e5af 100644
> --- a/drivers/vfio/mdev/vfio_mdev.c
> +++ b/drivers/vfio/mdev/vfio_mdev.c
> @@ -138,7 +138,7 @@ static int vfio_mdev_probe(struct device *dev)
>  	if (!mvdev)
>  		return -ENOMEM;
> 
> -	vfio_init_group_dev(&mvdev->vdev, &mdev->dev,
> &vfio_mdev_dev_ops, mdev);
> +	vfio_init_group_dev(&mvdev->vdev, &mdev->dev,
> &vfio_mdev_dev_ops);
>  	ret = vfio_register_group_dev(&mvdev->vdev);
>  	if (ret) {
>  		kfree(mvdev);
> diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c
> index 1f70387c8afe37..55ef27a15d4d3f 100644
> --- a/drivers/vfio/pci/vfio_pci.c
> +++ b/drivers/vfio/pci/vfio_pci.c
> @@ -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);
> diff --git a/drivers/vfio/platform/vfio_platform_common.c
> b/drivers/vfio/platform/vfio_platform_common.c
> index f5f6b537084a67..361e5b57e36932 100644
> --- a/drivers/vfio/platform/vfio_platform_common.c
> +++ b/drivers/vfio/platform/vfio_platform_common.c
> @@ -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)
> diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
> index 01de47d1810b6b..39ea77557ba0c4 100644
> --- a/drivers/vfio/vfio.c
> +++ b/drivers/vfio/vfio.c
> @@ -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... */
> diff --git a/include/linux/vfio.h b/include/linux/vfio.h
> index 784c34c0a28763..a2c5b30e1763ba 100644
> --- a/include/linux/vfio.h
> +++ b/include/linux/vfio.h
> @@ -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 {
> --
> 2.30.2
Cornelia Huck March 17, 2021, 12:08 p.m. UTC | #2
On Fri, 12 Mar 2021 20:56:06 -0400
Jason Gunthorpe <jgg@nvidia.com> wrote:

> There are no longer any users, so it can go away. Everything is using
> container_of now.
> 
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
> ---
>  Documentation/driver-api/vfio.rst            |  3 +--
>  drivers/vfio/fsl-mc/vfio_fsl_mc.c            |  5 +++--
>  drivers/vfio/mdev/vfio_mdev.c                |  2 +-
>  drivers/vfio/pci/vfio_pci.c                  |  2 +-
>  drivers/vfio/platform/vfio_platform_common.c |  2 +-
>  drivers/vfio/vfio.c                          | 12 +-----------
>  include/linux/vfio.h                         |  4 +---
>  7 files changed, 9 insertions(+), 21 deletions(-)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Max Gurtovoy March 17, 2021, 11:24 p.m. UTC | #3
On 3/13/2021 2:56 AM, Jason Gunthorpe wrote:
> There are no longer any users, so it can go away. Everything is using
> container_of now.
>
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
> ---
>   Documentation/driver-api/vfio.rst            |  3 +--
>   drivers/vfio/fsl-mc/vfio_fsl_mc.c            |  5 +++--
>   drivers/vfio/mdev/vfio_mdev.c                |  2 +-
>   drivers/vfio/pci/vfio_pci.c                  |  2 +-
>   drivers/vfio/platform/vfio_platform_common.c |  2 +-
>   drivers/vfio/vfio.c                          | 12 +-----------
>   include/linux/vfio.h                         |  4 +---
>   7 files changed, 9 insertions(+), 21 deletions(-)


Looks good,

Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
diff mbox series

Patch

diff --git a/Documentation/driver-api/vfio.rst b/Documentation/driver-api/vfio.rst
index 3337f337293a32..decc68cb8114ac 100644
--- a/Documentation/driver-api/vfio.rst
+++ b/Documentation/driver-api/vfio.rst
@@ -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);
 
diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc.c b/drivers/vfio/fsl-mc/vfio_fsl_mc.c
index 023b2222806424..3af3ca59478f94 100644
--- a/drivers/vfio/fsl-mc/vfio_fsl_mc.c
+++ b/drivers/vfio/fsl-mc/vfio_fsl_mc.c
@@ -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;
@@ -624,7 +625,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);
 
diff --git a/drivers/vfio/mdev/vfio_mdev.c b/drivers/vfio/mdev/vfio_mdev.c
index e7309caa99c71b..71bd28f976e5af 100644
--- a/drivers/vfio/mdev/vfio_mdev.c
+++ b/drivers/vfio/mdev/vfio_mdev.c
@@ -138,7 +138,7 @@  static int vfio_mdev_probe(struct device *dev)
 	if (!mvdev)
 		return -ENOMEM;
 
-	vfio_init_group_dev(&mvdev->vdev, &mdev->dev, &vfio_mdev_dev_ops, mdev);
+	vfio_init_group_dev(&mvdev->vdev, &mdev->dev, &vfio_mdev_dev_ops);
 	ret = vfio_register_group_dev(&mvdev->vdev);
 	if (ret) {
 		kfree(mvdev);
diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c
index 1f70387c8afe37..55ef27a15d4d3f 100644
--- a/drivers/vfio/pci/vfio_pci.c
+++ b/drivers/vfio/pci/vfio_pci.c
@@ -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);
diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c
index f5f6b537084a67..361e5b57e36932 100644
--- a/drivers/vfio/platform/vfio_platform_common.c
+++ b/drivers/vfio/platform/vfio_platform_common.c
@@ -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)
diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
index 01de47d1810b6b..39ea77557ba0c4 100644
--- a/drivers/vfio/vfio.c
+++ b/drivers/vfio/vfio.c
@@ -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... */
diff --git a/include/linux/vfio.h b/include/linux/vfio.h
index 784c34c0a28763..a2c5b30e1763ba 100644
--- a/include/linux/vfio.h
+++ b/include/linux/vfio.h
@@ -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 {