Merge tag 'nfsd-5.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
[linux-2.6-microblaze.git] / drivers / vfio / vfio.c
index 180b4ab..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);
 
@@ -832,7 +831,7 @@ static struct vfio_device *vfio_device_get_from_name(struct vfio_group *group,
                int ret;
 
                if (it->ops->match) {
-                       ret = it->ops->match(it->device_data, buf);
+                       ret = it->ops->match(it, buf);
                        if (ret < 0) {
                                device = ERR_PTR(ret);
                                break;
@@ -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... */
@@ -893,7 +883,7 @@ void vfio_unregister_group_dev(struct vfio_device *device)
        rc = try_wait_for_completion(&device->comp);
        while (rc <= 0) {
                if (device->ops->request)
-                       device->ops->request(device->device_data, i++);
+                       device->ops->request(device, i++);
 
                if (interrupted) {
                        rc = wait_for_completion_timeout(&device->comp,
@@ -1379,7 +1369,7 @@ static int vfio_group_get_device_fd(struct vfio_group *group, char *buf)
        if (IS_ERR(device))
                return PTR_ERR(device);
 
-       ret = device->ops->open(device->device_data);
+       ret = device->ops->open(device);
        if (ret) {
                vfio_device_put(device);
                return ret;
@@ -1391,7 +1381,7 @@ static int vfio_group_get_device_fd(struct vfio_group *group, char *buf)
         */
        ret = get_unused_fd_flags(O_CLOEXEC);
        if (ret < 0) {
-               device->ops->release(device->device_data);
+               device->ops->release(device);
                vfio_device_put(device);
                return ret;
        }
@@ -1401,7 +1391,7 @@ static int vfio_group_get_device_fd(struct vfio_group *group, char *buf)
        if (IS_ERR(filep)) {
                put_unused_fd(ret);
                ret = PTR_ERR(filep);
-               device->ops->release(device->device_data);
+               device->ops->release(device);
                vfio_device_put(device);
                return ret;
        }
@@ -1558,7 +1548,7 @@ static int vfio_device_fops_release(struct inode *inode, struct file *filep)
 {
        struct vfio_device *device = filep->private_data;
 
-       device->ops->release(device->device_data);
+       device->ops->release(device);
 
        vfio_group_try_dissolve_container(device->group);
 
@@ -1575,7 +1565,7 @@ static long vfio_device_fops_unl_ioctl(struct file *filep,
        if (unlikely(!device->ops->ioctl))
                return -EINVAL;
 
-       return device->ops->ioctl(device->device_data, cmd, arg);
+       return device->ops->ioctl(device, cmd, arg);
 }
 
 static ssize_t vfio_device_fops_read(struct file *filep, char __user *buf,
@@ -1586,7 +1576,7 @@ static ssize_t vfio_device_fops_read(struct file *filep, char __user *buf,
        if (unlikely(!device->ops->read))
                return -EINVAL;
 
-       return device->ops->read(device->device_data, buf, count, ppos);
+       return device->ops->read(device, buf, count, ppos);
 }
 
 static ssize_t vfio_device_fops_write(struct file *filep,
@@ -1598,7 +1588,7 @@ static ssize_t vfio_device_fops_write(struct file *filep,
        if (unlikely(!device->ops->write))
                return -EINVAL;
 
-       return device->ops->write(device->device_data, buf, count, ppos);
+       return device->ops->write(device, buf, count, ppos);
 }
 
 static int vfio_device_fops_mmap(struct file *filep, struct vm_area_struct *vma)
@@ -1608,7 +1598,7 @@ static int vfio_device_fops_mmap(struct file *filep, struct vm_area_struct *vma)
        if (unlikely(!device->ops->mmap))
                return -EINVAL;
 
-       return device->ops->mmap(device->device_data, vma);
+       return device->ops->mmap(device, vma);
 }
 
 static const struct file_operations vfio_device_fops = {