Skip to content

Commit

Permalink
vfio: Remove device_data from the vfio bus driver API
Browse files Browse the repository at this point in the history
There are no longer any users, so it can go away. Everything is using
container_of now.

Reviewed-by: Christoph Hellwig <[email protected]>
Reviewed-by: Kevin Tian <[email protected]>
Reviewed-by: Cornelia Huck <[email protected]>
Reviewed-by: Max Gurtovoy <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
  • Loading branch information
jgunthorpe authored and awilliam committed Apr 6, 2021
1 parent 07d47b4 commit 1e04ec1
Show file tree
Hide file tree
Showing 7 changed files with 9 additions and 21 deletions.
3 changes: 1 addition & 2 deletions Documentation/driver-api/vfio.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
5 changes: 3 additions & 2 deletions drivers/vfio/fsl-mc/vfio_fsl_mc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);

Expand Down
2 changes: 1 addition & 1 deletion drivers/vfio/mdev/vfio_mdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion drivers/vfio/pci/vfio_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion drivers/vfio/platform/vfio_platform_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
12 changes: 1 addition & 11 deletions drivers/vfio/vfio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down Expand Up @@ -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... */
Expand Down
4 changes: 1 addition & 3 deletions include/linux/vfio.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ struct vfio_device {
refcount_t refcount;
struct completion comp;
struct list_head group_next;
void *device_data;
};

/**
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit 1e04ec1

Please sign in to comment.