vfio: Stall vfio_del_group_dev() for container group detach
authorAlex Williamson <alex.williamson@redhat.com>
Fri, 18 Aug 2017 04:10:20 +0000 (22:10 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Wed, 30 Aug 2017 20:02:16 +0000 (14:02 -0600)
commit6586b561a91cd80a91c8f107ed0d144feb3eadc2
tree5988e991a86aecd42fb466dbc6793ad702246319
parentd935ad91f07d20268fca97b1ddc56a816ac71826
vfio: Stall vfio_del_group_dev() for container group detach

When the user unbinds the last device of a group from a vfio bus
driver, the devices within that group should be available for other
purposes.  We currently have a race that makes this generally, but
not always true.  The device can be unbound from the vfio bus driver,
but remaining IOMMU context of the group attached to the container
can result in errors as the next driver configures DMA for the device.

Wait for the group to be detached from the IOMMU backend before
allowing the bus driver remove callback to complete.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/vfio.c