@@ -142,14 +142,10 @@ int vfio_iommufd_emulated_bind(struct vfio_device *vdev,
lockdep_assert_held(&vdev->dev_set->lock);
- iommufd_ctx_get(ictx);
user = iommufd_access_create(ictx, &vfio_user_ops, vdev);
- if (IS_ERR(user)) {
- iommufd_ctx_put(ictx);
+ if (IS_ERR(user))
return PTR_ERR(user);
- }
vdev->iommufd_access = user;
- vdev->iommufd_ictx = ictx;
return 0;
}
EXPORT_SYMBOL_GPL(vfio_iommufd_emulated_bind);
@@ -162,8 +158,6 @@ void vfio_iommufd_emulated_unbind(struct vfio_device *vdev)
iommufd_access_destroy(vdev->iommufd_access);
vdev->iommufd_access = NULL;
}
- iommufd_ctx_put(vdev->iommufd_ictx);
- vdev->iommufd_ictx = NULL;
}
EXPORT_SYMBOL_GPL(vfio_iommufd_emulated_unbind);
@@ -171,8 +165,6 @@ int vfio_iommufd_emulated_attach_ioas(struct vfio_device *vdev, u32 *pt_id)
{
lockdep_assert_held(&vdev->dev_set->lock);
- if (!vdev->iommufd_ictx)
- return -EINVAL;
if (!vdev->iommufd_access)
return -ENOENT;
return iommufd_access_set_ioas(vdev->iommufd_access, *pt_id);
@@ -60,7 +60,6 @@ struct vfio_device {
void (*put_kvm)(struct kvm *kvm);
#if IS_ENABLED(CONFIG_IOMMUFD)
struct iommufd_device *iommufd_device;
- struct iommufd_ctx *iommufd_ictx;
bool iommufd_attached;
#endif
};
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. Signed-off-by: Yi Liu <yi.l.liu@intel.com> --- drivers/vfio/iommufd.c | 10 +--------- include/linux/vfio.h | 1 - 2 files changed, 1 insertion(+), 10 deletions(-)