mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 05:56:14 -04:00
vfio: Make vfio_device_ops pass a 'struct vfio_device *' instead of 'void *'
This is the standard kernel pattern, the ops associated with a struct get the struct pointer in for typesafety. The expected design is to use container_of to cleanly go from the subsystem level type to the driver level type without having any type erasure in a void *. Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> Message-Id: <12-v3-225de1400dfc+4e074-vfio1_jgg@nvidia.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
committed by
Alex Williamson
parent
66873b5fa7
commit
6df62c5b05
@@ -21,10 +21,11 @@
|
||||
#define DRIVER_AUTHOR "NVIDIA Corporation"
|
||||
#define DRIVER_DESC "VFIO based driver for Mediated device"
|
||||
|
||||
static int vfio_mdev_open(void *device_data)
|
||||
static int vfio_mdev_open(struct vfio_device *core_vdev)
|
||||
{
|
||||
struct mdev_device *mdev = device_data;
|
||||
struct mdev_device *mdev = to_mdev_device(core_vdev->dev);
|
||||
struct mdev_parent *parent = mdev->parent;
|
||||
|
||||
int ret;
|
||||
|
||||
if (unlikely(!parent->ops->open))
|
||||
@@ -40,9 +41,9 @@ static int vfio_mdev_open(void *device_data)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void vfio_mdev_release(void *device_data)
|
||||
static void vfio_mdev_release(struct vfio_device *core_vdev)
|
||||
{
|
||||
struct mdev_device *mdev = device_data;
|
||||
struct mdev_device *mdev = to_mdev_device(core_vdev->dev);
|
||||
struct mdev_parent *parent = mdev->parent;
|
||||
|
||||
if (likely(parent->ops->release))
|
||||
@@ -51,10 +52,10 @@ static void vfio_mdev_release(void *device_data)
|
||||
module_put(THIS_MODULE);
|
||||
}
|
||||
|
||||
static long vfio_mdev_unlocked_ioctl(void *device_data,
|
||||
static long vfio_mdev_unlocked_ioctl(struct vfio_device *core_vdev,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct mdev_device *mdev = device_data;
|
||||
struct mdev_device *mdev = to_mdev_device(core_vdev->dev);
|
||||
struct mdev_parent *parent = mdev->parent;
|
||||
|
||||
if (unlikely(!parent->ops->ioctl))
|
||||
@@ -63,10 +64,10 @@ static long vfio_mdev_unlocked_ioctl(void *device_data,
|
||||
return parent->ops->ioctl(mdev, cmd, arg);
|
||||
}
|
||||
|
||||
static ssize_t vfio_mdev_read(void *device_data, char __user *buf,
|
||||
static ssize_t vfio_mdev_read(struct vfio_device *core_vdev, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct mdev_device *mdev = device_data;
|
||||
struct mdev_device *mdev = to_mdev_device(core_vdev->dev);
|
||||
struct mdev_parent *parent = mdev->parent;
|
||||
|
||||
if (unlikely(!parent->ops->read))
|
||||
@@ -75,10 +76,11 @@ static ssize_t vfio_mdev_read(void *device_data, char __user *buf,
|
||||
return parent->ops->read(mdev, buf, count, ppos);
|
||||
}
|
||||
|
||||
static ssize_t vfio_mdev_write(void *device_data, const char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
static ssize_t vfio_mdev_write(struct vfio_device *core_vdev,
|
||||
const char __user *buf, size_t count,
|
||||
loff_t *ppos)
|
||||
{
|
||||
struct mdev_device *mdev = device_data;
|
||||
struct mdev_device *mdev = to_mdev_device(core_vdev->dev);
|
||||
struct mdev_parent *parent = mdev->parent;
|
||||
|
||||
if (unlikely(!parent->ops->write))
|
||||
@@ -87,9 +89,10 @@ static ssize_t vfio_mdev_write(void *device_data, const char __user *buf,
|
||||
return parent->ops->write(mdev, buf, count, ppos);
|
||||
}
|
||||
|
||||
static int vfio_mdev_mmap(void *device_data, struct vm_area_struct *vma)
|
||||
static int vfio_mdev_mmap(struct vfio_device *core_vdev,
|
||||
struct vm_area_struct *vma)
|
||||
{
|
||||
struct mdev_device *mdev = device_data;
|
||||
struct mdev_device *mdev = to_mdev_device(core_vdev->dev);
|
||||
struct mdev_parent *parent = mdev->parent;
|
||||
|
||||
if (unlikely(!parent->ops->mmap))
|
||||
@@ -98,9 +101,9 @@ static int vfio_mdev_mmap(void *device_data, struct vm_area_struct *vma)
|
||||
return parent->ops->mmap(mdev, vma);
|
||||
}
|
||||
|
||||
static void vfio_mdev_request(void *device_data, unsigned int count)
|
||||
static void vfio_mdev_request(struct vfio_device *core_vdev, unsigned int count)
|
||||
{
|
||||
struct mdev_device *mdev = device_data;
|
||||
struct mdev_device *mdev = to_mdev_device(core_vdev->dev);
|
||||
struct mdev_parent *parent = mdev->parent;
|
||||
|
||||
if (parent->ops->request)
|
||||
|
||||
Reference in New Issue
Block a user