diff options
author | Jason Gunthorpe <jgg@nvidia.com> | 2021-04-06 16:40:26 -0300 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2021-04-07 15:39:16 -0600 |
commit | 2a3d15f270efa50d78d8a32d895e9d5396668f3a (patch) | |
tree | b8354fd0e8324a7aa1ea35f9d9c852be6e1ba8d0 /Documentation | |
parent | b5a1f8921d5040bb788492bf33a66758021e4be5 (diff) | |
download | lwn-2a3d15f270efa50d78d8a32d895e9d5396668f3a.tar.gz lwn-2a3d15f270efa50d78d8a32d895e9d5396668f3a.zip |
vfio/mdev: Add missing typesafety around mdev_device
The mdev API should accept and pass a 'struct mdev_device *' in all
places, not pass a 'struct device *' and cast it internally with
to_mdev_device(). Particularly in its struct mdev_driver functions, the
whole point of a bus's struct device_driver wrapper is to provide type
safety compared to the default struct device_driver.
Further, the driver core standard is for bus drivers to expose their
device structure in their public headers that can be used with
container_of() inlines and '&foo->dev' to go between the class levels, and
'&foo->dev' to be used with dev_err/etc driver core helper functions. Move
'struct mdev_device' to mdev.h
Once done this allows moving some one instruction exported functions to
static inlines, which in turns allows removing one of the two grotesque
symbol_get()'s related to mdev in the core code.
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Message-Id: <3-v2-d36939638fc6+d54-vfio2_jgg@nvidia.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/driver-api/vfio-mediated-device.rst | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Documentation/driver-api/vfio-mediated-device.rst b/Documentation/driver-api/vfio-mediated-device.rst index 25eb7d5b834b..c43c1dc33333 100644 --- a/Documentation/driver-api/vfio-mediated-device.rst +++ b/Documentation/driver-api/vfio-mediated-device.rst @@ -105,8 +105,8 @@ structure to represent a mediated device's driver:: */ struct mdev_driver { const char *name; - int (*probe) (struct device *dev); - void (*remove) (struct device *dev); + int (*probe) (struct mdev_device *dev); + void (*remove) (struct mdev_device *dev); struct device_driver driver; }; |