vfio/pci: Fix ordering of eventfd vs virqfd shutdown
authorAlex Williamson <alex.williamson@redhat.com>
Mon, 30 May 2016 13:50:10 +0000 (07:50 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Mon, 30 May 2016 13:50:10 +0000 (07:50 -0600)
commit956b56a984ddf10aa69b25318dc04430101beed6
tree5d698890a0f6ab87af4c647908395f51d30e8356
parent1a695a905c18548062509178b98bc91e67510864
vfio/pci: Fix ordering of eventfd vs virqfd shutdown

Both the INTx and MSI/X disable paths do an eventfd_ctx_put() for the
trigger eventfd before calling vfio_virqfd_disable() any potential
mask and unmask eventfds.  This opens a use-after-free race where an
inopportune irqfd can reference the freed signalling eventfd.  Reorder
to avoid this possibility.

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