RDMA/rxe: Remove redundant scheduling of rxe_completer
authorBob Pearson <rpearsonhpe@gmail.com>
Fri, 29 Mar 2024 14:55:06 +0000 (09:55 -0500)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 22 Apr 2024 19:54:33 +0000 (16:54 -0300)
In rxe_post_send_kernel() if the qp is in the error state after posting
the work requests the rxe_completer() task is scheduled.

But, the only way to move the qp into the error state is to call
rxe_qp_error() which also schedules the rxe_completer() task to drain the
queues. Calling it a second time has no effect. This commit removes the
redundant call.

Link: https://lore.kernel.org/r/20240329145513.35381-6-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_verbs.c

index a49784e5156c54212d2af6b727a0687540b91feb..71b0f834030f34ed722fa1379f5f756241064fa3 100644 (file)
@@ -907,11 +907,6 @@ static int rxe_post_send_kernel(struct rxe_qp *qp,
        if (good)
                rxe_sched_task(&qp->req.task);
 
-       spin_lock_irqsave(&qp->state_lock, flags);
-       if (qp_state(qp) == IB_QPS_ERR)
-               rxe_sched_task(&qp->comp.task);
-       spin_unlock_irqrestore(&qp->state_lock, flags);
-
        return err;
 }