Commit d03f1336 authored by Jason Gunthorpe's avatar Jason Gunthorpe
Browse files

iommufd: Move putting a hwpt to a helper function

parent 1d149ab2
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -526,11 +526,7 @@ void iommufd_device_detach(struct iommufd_device *idev)
	struct iommufd_hw_pagetable *hwpt;

	hwpt = iommufd_hw_pagetable_detach(idev);
	if (hwpt->auto_domain)
		iommufd_object_destroy_user(idev->ictx, &hwpt->obj);
	else
		refcount_dec(&hwpt->obj.users);

	iommufd_hw_pagetable_put(idev->ictx, hwpt);
	refcount_dec(&idev->obj.users);
}
EXPORT_SYMBOL_NS_GPL(iommufd_device_detach, IOMMUFD);
+10 −0
Original line number Diff line number Diff line
@@ -260,6 +260,16 @@ struct iommufd_hw_pagetable *
iommufd_hw_pagetable_detach(struct iommufd_device *idev);
void iommufd_hw_pagetable_destroy(struct iommufd_object *obj);

static inline void iommufd_hw_pagetable_put(struct iommufd_ctx *ictx,
					    struct iommufd_hw_pagetable *hwpt)
{
	lockdep_assert_not_held(&hwpt->ioas->mutex);
	if (hwpt->auto_domain)
		iommufd_object_destroy_user(ictx, &hwpt->obj);
	else
		refcount_dec(&hwpt->obj.users);
}

struct iommufd_group {
	struct kref ref;
	struct mutex lock;