Commit c2ea08ca authored by Bob Pearson's avatar Bob Pearson Committed by Jason Gunthorpe

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.comSigned-off-by: default avatarBob Pearson <rpearsonhpe@gmail.com>
Reviewed-by: default avatarLi Zhijian <lizhijian@fujitsu.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent eff6d998
...@@ -722,7 +722,7 @@ int rxe_requester(void *arg) ...@@ -722,7 +722,7 @@ int rxe_requester(void *arg)
qp->req.wqe_index); qp->req.wqe_index);
wqe->state = wqe_state_done; wqe->state = wqe_state_done;
wqe->status = IB_WC_SUCCESS; wqe->status = IB_WC_SUCCESS;
__rxe_do_task(&qp->comp.task); rxe_run_task(&qp->comp.task, 0);
goto done; goto done;
} }
payload = mtu; payload = mtu;
...@@ -803,7 +803,7 @@ int rxe_requester(void *arg) ...@@ -803,7 +803,7 @@ int rxe_requester(void *arg)
goto out; goto out;
err: err:
wqe->state = wqe_state_error; wqe->state = wqe_state_error;
__rxe_do_task(&qp->comp.task); rxe_run_task(&qp->comp.task, 0);
exit: exit:
ret = -EAGAIN; ret = -EAGAIN;
out: out:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment