Skip to content

Commit

Permalink
RDMA/rxe: Replace __rxe_do_task by rxe_run_task
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Bob Pearson authored and jgunthorpe committed Jul 22, 2022
1 parent eff6d99 commit c2ea08c
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/infiniband/sw/rxe/rxe_req.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -803,7 +803,7 @@ int rxe_requester(void *arg)
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:
Expand Down

0 comments on commit c2ea08c

Please sign in to comment.