• Zhenyu Wang's avatar
    drm/i915/gvt: Change KVMGT as self load module · 9bdb0734
    Zhenyu Wang authored
    This trys to make 'kvmgt' module as self loadable instead of loading
    by i915/gvt device model. So hypervisor specific module could be
    stand-alone, e.g only after loading hypervisor specific module, GVT
    feature could be enabled via specific hypervisor interface, e.g VFIO/mdev.
    
    So this trys to use hypervisor module register/unregister interface
    for that. Hypervisor module needs to take care of module reference
    itself when working for hypervisor interface, e.g for VFIO/mdev,
    hypervisor module would reference counting mdev when open and release.
    
    This makes 'kvmgt' module really split from GVT device model. User
    needs to load 'kvmgt' to enable VFIO/mdev interface.
    
    v6:
    - remove unused variable
    
    v5:
    - put module reference in register error path
    
    v4:
    - fix checkpatch warning
    
    v3:
    - Fix module reference handling for device open and release. Unused
      mdev devices would be cleaned up in device unregister when module unload.
    
    v2:
    - Fix kvmgt order after i915 for built-in case
    
    Cc: "Yuan, Hang" <hang.yuan@intel.com>
    Cc: Alex Williamson <alex.williamson@redhat.com>
    Cc: "He, Min" <min.he@intel.com>
    Reviewed-by: default avatarYuan, Hang <hang.yuan@intel.com>
    Acked-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
    9bdb0734
kvmgt.c 45 KB