diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-08-17 21:27:32 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-08-22 10:25:19 -0400 |
commit | 6d2cd3ce815b302e885b44ca1bdbe3c7db321c7a (patch) | |
tree | 297e0e82ef5c8b7b711863dd6016f91c818cd207 /drivers/vfio | |
parent | 8ad5db8a8ddbe3bd33078863a027011e28f1f4ee (diff) | |
download | lwn-6d2cd3ce815b302e885b44ca1bdbe3c7db321c7a.tar.gz lwn-6d2cd3ce815b302e885b44ca1bdbe3c7db321c7a.zip |
vfio: get rid of open-coding kref_put_mutex
Acked-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/vfio')
-rw-r--r-- | drivers/vfio/vfio.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c index 0b025d58de81..92b85676e6be 100644 --- a/drivers/vfio/vfio.c +++ b/drivers/vfio/vfio.c @@ -264,6 +264,7 @@ static struct vfio_group *vfio_create_group(struct iommu_group *iommu_group) return group; } +/* called with vfio.group_lock held */ static void vfio_group_release(struct kref *kref) { struct vfio_group *group = container_of(kref, struct vfio_group, kref); @@ -287,13 +288,7 @@ static void vfio_group_release(struct kref *kref) static void vfio_group_put(struct vfio_group *group) { - mutex_lock(&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); + kref_put_mutex(&group->kref, vfio_group_release, &vfio.group_lock); } /* Assume group_lock or group reference is held */ |