On Tue, Nov 08, 2022 at 09:16:51AM -0700, Alex Williamson wrote:
On Tue, 8 Nov 2022 14:37:21 +0100 Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
From: Jason Gunthorpe jgg@nvidia.com
[ Upstream commit f423fa1bc9fe1978e6b9f54927411b62cb43eb04 ]
When converting to directly create the vfio_device the mdev driver has to put a vfio_register_emulated_iommu_dev() in the probe() and a pairing vfio_unregister_group_dev() in the remove.
This was missed for gvt, add it.
Cc: stable@vger.kernel.org Fixes: 978cf586ac35 ("drm/i915/gvt: convert to use vfio_register_emulated_iommu_dev") Reported-by: Alex Williamson alex.williamson@redhat.com Signed-off-by: Jason Gunthorpe jgg@nvidia.com Reviewed-by: Kevin Tian kevin.tian@intel.com Reviewed-by: Christoph Hellwig hch@lst.de Link: https://lore.kernel.org/r/0-v1-013609965fe8+9d-vfio_gvt_unregister_jgg@nvidi... Signed-off-by: Alex Williamson alex.williamson@redhat.com Signed-off-by: Sasha Levin sashal@kernel.org
drivers/gpu/drm/i915/gvt/kvmgt.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c index e3cd58946477..dacd57732dbe 100644 --- a/drivers/gpu/drm/i915/gvt/kvmgt.c +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c @@ -1595,6 +1595,7 @@ static void intel_vgpu_remove(struct mdev_device *mdev) if (WARN_ON_ONCE(vgpu->attached)) return;
- vfio_unregister_group_dev(&vgpu->vfio_device); intel_gvt_destroy_vgpu(vgpu);
}
Nak, the v6.0 backport for this also needs to call vfio_uninit_group_dev(). kvmgt had missed both calls, but at the time of f423fa1bc9fe this latter missing call had already been replaced by vfio_put_device() in a5ddd2a99a7a, where cb9ff3f3b84c had implemented a device release function with this call. The correct backport should be:
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c index e3cd58946477..2404d856f764 100644 --- a/drivers/gpu/drm/i915/gvt/kvmgt.c +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c @@ -1595,6 +1595,8 @@ static void intel_vgpu_remove(struct mdev_device *mdev) if (WARN_ON_ONCE(vgpu->attached)) return;
- vfio_unregister_group_dev(&vgpu->vfio_device);
- vfio_uninit_group_dev(&vgpu->vfio_device); intel_gvt_destroy_vgpu(vgpu);
} Kevin, Yi, please confirm. Thanks,
Can you submit a real backport for this? I'll go drop this one for now.
thanks,
greg k-h