simplify the mdev interface v3

Christoph Hellwig
2022-06-28T05:16:44Z

Hi all,

this series signigicantly simplies the mdev driver interface by following
the patterns for device model interaction used elsewhere in the kernel.

Changes since v2:
- rebased to vfio/next
- fix a pre-existing memory leak in i915 instead of making it worse
- never manipulate if ->available_instances if drv->get_available is
provided
- keep a parent reference for the mdev_type
- keep a few of the sysfs.c helper function around
- improve the documentation for the parent device lifetime
- minor spellig / formatting fixes

Changes since v1:
- embedd the mdev_parent into a different sub-structure in i916
- remove headers now inclued by mdev.h from individual source files
- pass an array of mdev_types to mdev_register_parent
- add additional patches to implement all attributes on the
mdev_type in the core code

Diffstat:
Documentation/driver-api/vfio-mediated-device.rst | 26 +--
Documentation/s390/vfio-ap.rst | 2
Documentation/s390/vfio-ccw.rst | 2
drivers/gpu/drm/i915/gvt/gvt.h | 6
drivers/gpu/drm/i915/gvt/kvmgt.c | 158 ++++--------------
drivers/gpu/drm/i915/gvt/vgpu.c | 66 ++-----
drivers/s390/cio/cio.h | 4
drivers/s390/cio/vfio_ccw_drv.c | 3
drivers/s390/cio/vfio_ccw_ops.c | 60 +------
drivers/s390/cio/vfio_ccw_private.h | 2
drivers/s390/crypto/vfio_ap_ops.c | 68 +-------
drivers/s390/crypto/vfio_ap_private.h | 6
drivers/vfio/mdev/mdev_core.c | 185 ++++-----------------
drivers/vfio/mdev/mdev_driver.c | 7
drivers/vfio/mdev/mdev_private.h | 32 ---
drivers/vfio/mdev/mdev_sysfs.c | 187 +++++++++++-----------
include/linux/mdev.h | 77 ++++-----
samples/vfio-mdev/mbochs.c | 103 +++---------
samples/vfio-mdev/mdpy.c | 115 +++----------
samples/vfio-mdev/mtty.c | 94 +++--------
20 files changed, 380 insertions(+), 823 deletions(-)