Message ID | 159234276956.31057.6902954364435481688.stgit@gimli.home (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vfio/pci: Clear error and request eventfd ctx after releasing | expand |
> On Jun 16, 2020, at 5:26 PM, Alex Williamson <alex.williamson@redhat.com> wrote: > > The next use of the device will generate an underflow from the > stale reference. Thanks Alex for taking care of this. I suppose my tests were too basic and never able to catch this underflow in the first place.
On Tue, 16 Jun 2020 15:26:36 -0600 Alex Williamson <alex.williamson@redhat.com> wrote: > The next use of the device will generate an underflow from the > stale reference. > > Cc: Qian Cai <cai@lca.pw> > Fixes: 1518ac272e78 ("vfio/pci: fix memory leaks of eventfd ctx") > Reported-by: Daniel Wagner <dwagner@suse.de> > Signed-off-by: Alex Williamson <alex.williamson@redhat.com> > --- > 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@redhat.com>
Hi Alex, On Tue, Jun 16, 2020 at 03:26:36PM -0600, Alex Williamson wrote: > The next use of the device will generate an underflow from the > stale reference. > > Cc: Qian Cai <cai@lca.pw> > Fixes: 1518ac272e78 ("vfio/pci: fix memory leaks of eventfd ctx") > Reported-by: Daniel Wagner <dwagner@suse.de> > Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Thanks for the quick fix. I gave it a try and the warning is gone. Tested-by: Daniel Wagner <dwagner@suse.de> Thanks, Daniel
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);
The next use of the device will generate an underflow from the stale reference. Cc: Qian Cai <cai@lca.pw> Fixes: 1518ac272e78 ("vfio/pci: fix memory leaks of eventfd ctx") Reported-by: Daniel Wagner <dwagner@suse.de> Signed-off-by: Alex Williamson <alex.williamson@redhat.com> --- drivers/vfio/pci/vfio_pci.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)