Commit 6d2cd3ce authored by Al Viro's avatar Al Viro

vfio: get rid of open-coding kref_put_mutex

Acked-by: default avatarAlex Williamson <alex.williamson@redhat.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 8ad5db8a
...@@ -264,6 +264,7 @@ static struct vfio_group *vfio_create_group(struct iommu_group *iommu_group) ...@@ -264,6 +264,7 @@ static struct vfio_group *vfio_create_group(struct iommu_group *iommu_group)
return group; return group;
} }
/* called with vfio.group_lock held */
static void vfio_group_release(struct kref *kref) static void vfio_group_release(struct kref *kref)
{ {
struct vfio_group *group = container_of(kref, struct vfio_group, kref); struct vfio_group *group = container_of(kref, struct vfio_group, kref);
...@@ -287,13 +288,7 @@ static void vfio_group_release(struct kref *kref) ...@@ -287,13 +288,7 @@ static void vfio_group_release(struct kref *kref)
static void vfio_group_put(struct vfio_group *group) static void vfio_group_put(struct vfio_group *group)
{ {
mutex_lock(&vfio.group_lock); kref_put_mutex(&group->kref, vfio_group_release, &vfio.group_lock);
/*
* Release needs to unlock to unregister the notifier, so only
* unlock if not released.
*/
if (!kref_put(&group->kref, vfio_group_release))
mutex_unlock(&vfio.group_lock);
} }
/* Assume group_lock or group reference is held */ /* Assume group_lock or group reference is held */
......
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