lkml.org 
[lkml]   [2020]   [Jun]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 094/178] net: qede: stop adding events on an already destroyed workqueue
    Date
    From: Alexander Lobakin <alobakin@marvell.com>

    [ Upstream commit 4079c7f7a2a00ab403c177ce723b560de59139c3 ]

    Set rdma_wq pointer to NULL after destroying the workqueue and check
    for it when adding new events to fix crashes on driver unload.

    Fixes: cee9fbd8e2e9 ("qede: Add qedr framework")
    Signed-off-by: Alexander Lobakin <alobakin@marvell.com>
    Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
    Signed-off-by: Michal Kalderon <michal.kalderon@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/qlogic/qede/qede_rdma.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/qlogic/qede/qede_rdma.c b/drivers/net/ethernet/qlogic/qede/qede_rdma.c
    index 2d873ae8a234d..668ccc9d49f83 100644
    --- a/drivers/net/ethernet/qlogic/qede/qede_rdma.c
    +++ b/drivers/net/ethernet/qlogic/qede/qede_rdma.c
    @@ -105,6 +105,7 @@ static void qede_rdma_destroy_wq(struct qede_dev *edev)

    qede_rdma_cleanup_event(edev);
    destroy_workqueue(edev->rdma_info.rdma_wq);
    + edev->rdma_info.rdma_wq = NULL;
    }

    int qede_rdma_dev_add(struct qede_dev *edev, bool recovery)
    @@ -325,7 +326,7 @@ static void qede_rdma_add_event(struct qede_dev *edev,
    if (edev->rdma_info.exp_recovery)
    return;

    - if (!edev->rdma_info.qedr_dev)
    + if (!edev->rdma_info.qedr_dev || !edev->rdma_info.rdma_wq)
    return;

    /* We don't want the cleanup flow to start while we're allocating and
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-29 21:47    [W:4.367 / U:0.552 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site