lkml.org 
[lkml]   [2022]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 127/210] RDMA/rxe: Fix the error caused by qp->sk
    Date
    From: Zhu Yanjun <yanjun.zhu@linux.dev>

    [ Upstream commit 548ce2e66725dcba4e27d1e8ac468d5dd17fd509 ]

    When sock_create_kern in the function rxe_qp_init_req fails,
    qp->sk is set to NULL.

    Then the function rxe_create_qp will call rxe_qp_do_cleanup
    to handle allocated resource.

    Before handling qp->sk, this variable should be checked.

    Fixes: 8700e3e7c485 ("Soft RoCE driver")
    Link: https://lore.kernel.org/r/20220822011615.805603-3-yanjun.zhu@linux.dev
    Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
    Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
    Reviewed-by: Bob Pearson <rpearsonhpe@gmail.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/infiniband/sw/rxe/rxe_qp.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/drivers/infiniband/sw/rxe/rxe_qp.c b/drivers/infiniband/sw/rxe/rxe_qp.c
    index 6647a1628953..2391b0e698a9 100644
    --- a/drivers/infiniband/sw/rxe/rxe_qp.c
    +++ b/drivers/infiniband/sw/rxe/rxe_qp.c
    @@ -871,8 +871,10 @@ static void rxe_qp_do_cleanup(struct work_struct *work)

    free_rd_atomic_resources(qp);

    - kernel_sock_shutdown(qp->sk, SHUT_RDWR);
    - sock_release(qp->sk);
    + if (qp->sk) {
    + kernel_sock_shutdown(qp->sk, SHUT_RDWR);
    + sock_release(qp->sk);
    + }
    }

    /* called when the last reference to the qp is dropped */
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-10-24 14:08    [W:2.057 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site