diff options
author | Bob Pearson <rpearsonhpe@gmail.com> | 2022-07-20 11:56:07 +0300 |
---|---|---|
committer | Jason Gunthorpe <jgg@nvidia.com> | 2022-08-02 19:53:36 +0300 |
commit | 62494ec7fbca4d58900eb62e075f2fedc85b5fb9 (patch) | |
tree | b788f5759d837710cd2a8b25c5fca4de5ac0131c /drivers/infiniband/sw/rxe/rxe_req.c | |
parent | ae720bdb703b295fed4ded28e14dd06a534a3012 (diff) | |
download | linux-62494ec7fbca4d58900eb62e075f2fedc85b5fb9.tar.xz |
RDMA/rxe: Split qp state for requester and completer
Currently the requester can continue to process send wqes after an local
qp operation error is detected because the setting of the qp state to the
error state is deferred until later. This patch splits the qp state for
the completer and requester into two separate states and sets
qp->req.state = QP_STATE_ERROR as soon as the error is detected before
another wqe can be executed.
Link: https://lore.kernel.org/r/1658307368-1851-4-git-send-email-lizhijian@fujitsu.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'drivers/infiniband/sw/rxe/rxe_req.c')
-rw-r--r-- | drivers/infiniband/sw/rxe/rxe_req.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_req.c b/drivers/infiniband/sw/rxe/rxe_req.c index f3bd071d3e7e..f63771207970 100644 --- a/drivers/infiniband/sw/rxe/rxe_req.c +++ b/drivers/infiniband/sw/rxe/rxe_req.c @@ -816,6 +816,7 @@ err: /* update wqe_index for each wqe completion */ qp->req.wqe_index = queue_next_index(qp->sq.queue, qp->req.wqe_index); wqe->state = wqe_state_error; + qp->req.state = QP_STATE_ERROR; rxe_run_task(&qp->comp.task, 0); exit: ret = -EAGAIN; |