On Tue, 23 Mar 2021 14:55:19 -0300 Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > 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. > > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > --- > .../driver-api/vfio-mediated-device.rst | 4 +- > drivers/vfio/mdev/mdev_core.c | 64 ++----------------- > drivers/vfio/mdev/mdev_driver.c | 4 +- > drivers/vfio/mdev/mdev_private.h | 23 +------ > drivers/vfio/mdev/mdev_sysfs.c | 26 ++++---- > drivers/vfio/mdev/vfio_mdev.c | 7 +- > drivers/vfio/vfio_iommu_type1.c | 25 ++------ > include/linux/mdev.h | 58 +++++++++++++---- > 8 files changed, 83 insertions(+), 128 deletions(-) Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>