RDMA/rxe: Missing unlock on error in get_srq_wqe()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 25 Jun 2021 13:03:06 +0000 (16:03 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 25 Jun 2021 15:00:28 +0000 (12:00 -0300)
This error path needs to unlock before returning.

Fixes: ec0fa2445c18 ("RDMA/rxe: Fix over copying in get_srq_wqe")
Link: https://lore.kernel.org/r/YNXUCmnPsSkPyhkm@mwanda
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Majd Dibbiny <majd@nvidia.com>
Reviewed-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_resp.c

index 72cdb17..3743dc3 100644 (file)
@@ -314,6 +314,7 @@ static enum resp_states get_srq_wqe(struct rxe_qp *qp)
 
        /* don't trust user space data */
        if (unlikely(wqe->dma.num_sge > srq->rq.max_sge)) {
+               spin_unlock_bh(&srq->rq.consumer_lock);
                pr_warn("%s: invalid num_sge in SRQ entry\n", __func__);
                return RESPST_ERR_MALFORMED_WQE;
        }