Commit 4508a533 authored by Yi Liu's avatar Yi Liu Committed by Jason Gunthorpe

vfio-iommufd: No need to record iommufd_ctx in vfio_device

iommufd_ctx is stored in vfio_device for emulated devices per bind_iommufd.
However, as iommufd_access is created in bind, no more need to stored it
since iommufd_access implicitly stores it.

Link: https://lore.kernel.org/r/20230327093351.44505-4-yi.l.liu@intel.comReviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Reviewed-by: default avatarKevin Tian <kevin.tian@intel.com>
Tested-by: default avatarTerrence Xu <terrence.xu@intel.com>
Tested-by: default avatarNicolin Chen <nicolinc@nvidia.com>
Signed-off-by: default avatarYi Liu <yi.l.liu@intel.com>
Acked-by: default avatarAlex Williamson <alex.williamson@redhat.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 54b47585
...@@ -142,14 +142,10 @@ int vfio_iommufd_emulated_bind(struct vfio_device *vdev, ...@@ -142,14 +142,10 @@ int vfio_iommufd_emulated_bind(struct vfio_device *vdev,
lockdep_assert_held(&vdev->dev_set->lock); lockdep_assert_held(&vdev->dev_set->lock);
iommufd_ctx_get(ictx);
user = iommufd_access_create(ictx, &vfio_user_ops, vdev); user = iommufd_access_create(ictx, &vfio_user_ops, vdev);
if (IS_ERR(user)) { if (IS_ERR(user))
iommufd_ctx_put(ictx);
return PTR_ERR(user); return PTR_ERR(user);
}
vdev->iommufd_access = user; vdev->iommufd_access = user;
vdev->iommufd_ictx = ictx;
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(vfio_iommufd_emulated_bind); EXPORT_SYMBOL_GPL(vfio_iommufd_emulated_bind);
...@@ -163,8 +159,6 @@ void vfio_iommufd_emulated_unbind(struct vfio_device *vdev) ...@@ -163,8 +159,6 @@ void vfio_iommufd_emulated_unbind(struct vfio_device *vdev)
vdev->iommufd_attached = false; vdev->iommufd_attached = false;
vdev->iommufd_access = NULL; vdev->iommufd_access = NULL;
} }
iommufd_ctx_put(vdev->iommufd_ictx);
vdev->iommufd_ictx = NULL;
} }
EXPORT_SYMBOL_GPL(vfio_iommufd_emulated_unbind); EXPORT_SYMBOL_GPL(vfio_iommufd_emulated_unbind);
......
...@@ -60,7 +60,6 @@ struct vfio_device { ...@@ -60,7 +60,6 @@ struct vfio_device {
void (*put_kvm)(struct kvm *kvm); void (*put_kvm)(struct kvm *kvm);
#if IS_ENABLED(CONFIG_IOMMUFD) #if IS_ENABLED(CONFIG_IOMMUFD)
struct iommufd_device *iommufd_device; struct iommufd_device *iommufd_device;
struct iommufd_ctx *iommufd_ictx;
bool iommufd_attached; bool iommufd_attached;
#endif #endif
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment