vfio/pci: Clear token on bypass registration failure
authorAlex Williamson <alex.williamson@redhat.com>
Mon, 19 Oct 2020 13:13:55 +0000 (07:13 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Mon, 19 Oct 2020 13:13:55 +0000 (07:13 -0600)
commit852b1beecb6ff9326f7ca4bc0fe69ae860ebdb9e
treeae2b47d702416c08f655a243f94d845bcb70e7e5
parent822e1a90afff61826252a65e574e940c0038055c
vfio/pci: Clear token on bypass registration failure

The eventfd context is used as our irqbypass token, therefore if an
eventfd is re-used, our token is the same.  The irqbypass code will
return an -EBUSY in this case, but we'll still attempt to unregister
the producer, where if that duplicate token still exists, results in
removing the wrong object.  Clear the token of failed producers so
that they harmlessly fall out when unregistered.

Fixes: 6d7425f109d2 ("vfio: Register/unregister irq_bypass_producer")
Reported-by: guomin chen <guomin_chen@sina.com>
Tested-by: guomin chen <guomin_chen@sina.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/pci/vfio_pci_intrs.c