• Jason Gunthorpe's avatar
    vfio/mdev: Add missing typesafety around mdev_device · 2a3d15f2
    Jason Gunthorpe authored
    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: default avatarKevin Tian <kevin.tian@intel.com>
    Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Message-Id: <3-v2-d36939638fc6+d54-vfio2_jgg@nvidia.com>
    Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    2a3d15f2
mdev_core.c 8.16 KB