lkml.org 
[lkml]   [2020]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.9 87/90] vfio/pci: Clear error and request eventfd ctx after releasing
    Date
    From: Alex Williamson <alex.williamson@redhat.com>

    [ Upstream commit 5c5866c593bbd444d0339ede6a8fb5f14ff66d72 ]

    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>
    Reviewed-by: Cornelia Huck <cohuck@redhat.com>
    Tested-by: Daniel Wagner <dwagner@suse.de>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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 c9c0af9a571f6..c08cff0ca08df 100644
    --- a/drivers/vfio/pci/vfio_pci.c
    +++ b/drivers/vfio/pci/vfio_pci.c
    @@ -392,10 +392,14 @@ static void vfio_pci_release(void *device_data)
    if (!(--vdev->refcnt)) {
    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(&driver_lock);
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-09-18 04:25    [W:2.195 / U:0.384 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site