aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/sw/rxe
diff options
context:
space:
mode:
authorBob Pearson <rpearsonhpe@gmail.com>2022-06-30 14:04:26 -0500
committerJason Gunthorpe <jgg@nvidia.com>2022-07-22 17:43:00 -0300
commitc2ea08ca5e4a85d0adde7a87c239a2659a2e6bbf (patch)
treea8ba9b12ec9058136cc5884c2946a913a0d0c79f /drivers/infiniband/sw/rxe
parentRDMA/rxe: Limit the number of calls to each tasklet (diff)
downloadlinux-dev-c2ea08ca5e4a85d0adde7a87c239a2659a2e6bbf.tar.xz
linux-dev-c2ea08ca5e4a85d0adde7a87c239a2659a2e6bbf.zip
RDMA/rxe: Replace __rxe_do_task by rxe_run_task
In rxe_req.c replace calls to __rxe_do_task() by calls to rxe_run_task(.., 0). Using __rxe_do_task is an error because the completer tasklet is not designed to be re-entrant and __rxe_do_task() should only be called when it is clear that no one else could be calling the completer tasklet as is the case in rxe_qp.c where this call is used in safe environments. Link: https://lore.kernel.org/r/20220630190425.2251-10-rpearsonhpe@gmail.com Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com> Reviewed-by: Li Zhijian <lizhijian@fujitsu.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'drivers/infiniband/sw/rxe')
-rw-r--r--drivers/infiniband/sw/rxe/rxe_req.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_req.c b/drivers/infiniband/sw/rxe/rxe_req.c
index f97e8c152a13..49e8f54db6f5 100644
--- a/drivers/infiniband/sw/rxe/rxe_req.c
+++ b/drivers/infiniband/sw/rxe/rxe_req.c
@@ -722,7 +722,7 @@ int rxe_requester(void *arg)
qp->req.wqe_index);
wqe->state = wqe_state_done;
wqe->status = IB_WC_SUCCESS;
- __rxe_do_task(&qp->comp.task);
+ rxe_run_task(&qp->comp.task, 0);
goto done;
}
payload = mtu;
@@ -803,7 +803,7 @@ done:
goto out;
err:
wqe->state = wqe_state_error;
- __rxe_do_task(&qp->comp.task);
+ rxe_run_task(&qp->comp.task, 0);
exit:
ret = -EAGAIN;
out: