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 v3: - make the sysfs_name and pretty_name fields pointers instead of arrays - add an i915 cleanup to prepare for the above 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/aperture_gm.c | 20 +- drivers/gpu/drm/i915/gvt/gvt.h | 42 ++-- drivers/gpu/drm/i915/gvt/kvmgt.c | 168 ++++------------- drivers/gpu/drm/i915/gvt/vgpu.c | 210 +++++++--------------- 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 | 186 ++++++++++--------- include/linux/mdev.h | 77 ++++---- samples/vfio-mdev/mbochs.c | 103 +++------- samples/vfio-mdev/mdpy.c | 115 +++--------- samples/vfio-mdev/mtty.c | 94 +++------ 21 files changed, 458 insertions(+), 954 deletions(-)