diff options
author | Sean Christopherson <seanjc@google.com> | 2022-11-11 00:22:24 +0000 |
---|---|---|
committer | Zhenyu Wang <zhenyuw@linux.intel.com> | 2022-11-11 13:13:50 +0800 |
commit | 9ed1fdee9ee324f3505ff066287ee53143caaaa2 (patch) | |
tree | 025ba26f9e2c5402af046c65093f332d8b291cd9 /drivers/gpu | |
parent | f0c4d9fc9cc9462659728d168387191387e903cc (diff) | |
download | linux-stable-9ed1fdee9ee324f3505ff066287ee53143caaaa2.tar.gz linux-stable-9ed1fdee9ee324f3505ff066287ee53143caaaa2.tar.bz2 linux-stable-9ed1fdee9ee324f3505ff066287ee53143caaaa2.zip |
drm/i915/gvt: Get reference to KVM iff attachment to VM is successful
Get a reference to KVM if and only if a vGPU is successfully attached to
the VM to avoid leaking a reference if there's no available vGPU. On
open_device() failure, vfio_device_open() doesn't invoke close_device().
Fixes: 421cfe6596f6 ("vfio: remove VFIO_GROUP_NOTIFY_SET_KVM")
Cc: stable@vger.kernel.org
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20221111002225.2418386-2-seanjc@google.com
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/i915/gvt/kvmgt.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c index 7a45e5360caf..e67d5267fde0 100644 --- a/drivers/gpu/drm/i915/gvt/kvmgt.c +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c @@ -664,8 +664,6 @@ static int intel_vgpu_open_device(struct vfio_device *vfio_dev) return -ESRCH; } - kvm_get_kvm(vgpu->vfio_device.kvm); - if (__kvmgt_vgpu_exist(vgpu)) return -EEXIST; @@ -676,6 +674,7 @@ static int intel_vgpu_open_device(struct vfio_device *vfio_dev) vgpu->track_node.track_write = kvmgt_page_track_write; vgpu->track_node.track_flush_slot = kvmgt_page_track_flush_slot; + kvm_get_kvm(vgpu->vfio_device.kvm); kvm_page_track_register_notifier(vgpu->vfio_device.kvm, &vgpu->track_node); |