On Tue, 16 Jun 2020 15:26:36 -0600 Alex Williamson <alex.williamson@xxxxxxxxxx> wrote: > The next use of the device will generate an underflow from the > stale reference. > > Cc: Qian Cai <cai@xxxxxx> > Fixes: 1518ac272e78 ("vfio/pci: fix memory leaks of eventfd ctx") > Reported-by: Daniel Wagner <dwagner@xxxxxxx> > Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> > --- > drivers/vfio/pci/vfio_pci.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c > index 7c0779018b1b..f634c81998bb 100644 > --- a/drivers/vfio/pci/vfio_pci.c > +++ b/drivers/vfio/pci/vfio_pci.c > @@ -521,10 +521,14 @@ static void vfio_pci_release(void *device_data) > vfio_pci_vf_token_user_add(vdev, -1); > vfio_spapr_pci_eeh_release(vdev->pdev); > vfio_pci_disable(vdev); > - if (vdev->err_trigger) > + if (vdev->err_trigger) { > eventfd_ctx_put(vdev->err_trigger); > - if (vdev->req_trigger) > + vdev->err_trigger = NULL; > + } > + if (vdev->req_trigger) { > eventfd_ctx_put(vdev->req_trigger); > + vdev->req_trigger = NULL; > + } > } > > mutex_unlock(&vdev->reflck->lock); > Clearing this seems like the right thing to do. Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>