vfio-pci: Fix remove path locking
authorAlex Williamson <alex.williamson@redhat.com>
Mon, 29 Sep 2014 23:18:39 +0000 (17:18 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Mon, 29 Sep 2014 23:18:39 +0000 (17:18 -0600)
commit93899a679fd6b2534b5c297d9316bae039ebcbe1
tree99679fe7f8afc70254c5ff9f0d202028911ccad4
parent0f905ce2b59c666ad48f240bfa2ab28b77f7f936
vfio-pci: Fix remove path locking

Locking both the remove() and release() path results in a deadlock
that should have been obvious.  To fix this we can get and hold the
vfio_device reference as we evaluate whether to do a bus/slot reset.
This will automatically block any remove() calls, allowing us to
remove the explict lock.  Fixes 61d792562b53.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Cc: stable@vger.kernel.org [3.17]
drivers/vfio/pci/vfio_pci.c