Skip to content

Commit

Permalink
Merge tag 'vfio-v4.11-rc4' of git://github.com/awilliam/linux-vfio
Browse files Browse the repository at this point in the history
Pull VFIO fix from Alex Williamson:
 "Rework sanity check for mdev driver group notifier de-registration
  (Alex Williamson)"

* tag 'vfio-v4.11-rc4' of git://github.com/awilliam/linux-vfio:
  vfio: Rework group release notifier warning
  • Loading branch information
torvalds committed Mar 24, 2017
2 parents 04e904a + 65b1ade commit d07c6f4
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions drivers/vfio/vfio.c
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,7 @@ static void vfio_group_release(struct kref *kref)
struct iommu_group *iommu_group = group->iommu_group;

WARN_ON(!list_empty(&group->device_list));
WARN_ON(group->notifier.head);

list_for_each_entry_safe(unbound, tmp,
&group->unbound_list, unbound_next) {
Expand Down Expand Up @@ -1573,6 +1574,10 @@ static int vfio_group_fops_open(struct inode *inode, struct file *filep)
return -EBUSY;
}

/* Warn if previous user didn't cleanup and re-init to drop them */
if (WARN_ON(group->notifier.head))
BLOCKING_INIT_NOTIFIER_HEAD(&group->notifier);

filep->private_data = group;

return 0;
Expand All @@ -1584,9 +1589,6 @@ static int vfio_group_fops_release(struct inode *inode, struct file *filep)

filep->private_data = NULL;

/* Any user didn't unregister? */
WARN_ON(group->notifier.head);

vfio_group_try_dissolve_container(group);

atomic_dec(&group->opened);
Expand Down

0 comments on commit d07c6f4

Please sign in to comment.