diff options
| author | Nguyễn Văn Cao Nguyên <nguyennvc@greennode.ai> | 2026-09-30 14:51:42 +0700 |
|---|---|---|
| committer | Leon Romanovsky <leon@kernel.org> | 2026-09-30 09:48:40 -0400 |
| commit | 6de34bfb56ad8c24bf63b243b5f32b345d9cdd4d (patch) | |
| tree | 62320d09a6a93cfcd0da633105ab574edb4a07b9 /tools/lib/python | |
| parent | 9d3259e41ccd5016cd2c6d013232b89df6d73011 (diff) | |
RDMA/irdma: Do not move a fresh RoCE QP to ERROR on RESET
irdma_modify_qp_roce() handles IB_QPS_RESET like IB_QPS_ERR and moves
the QP to ERROR. On a QP that was never moved to INIT, this makes the
following RESET->INIT fail with -EINVAL, while ibv_query_qp() still
reports RESET.
RESET->RESET is a valid transition. The Mooncake transfer engine
resets every new QP before INIT, so it cannot connect over an E810,
while mlx5 accepts the same sequence:
ibv_create_qp(RC) -> RESET
ibv_modify_qp(RESET) -> 0
ibv_modify_qp(INIT, ...) -> -EINVAL
Skip the hardware modify when the QP has not been moved to INIT yet
(iwarp_state is IRDMA_QP_STATE_INVALID), as there is nothing to flush.
RESET after INIT still goes to ERROR.
Fixes: b48c24c2d710 ("RDMA/irdma: Implement device supported verb APIs")
Assisted-by: LLM
Signed-off-by: Nguyễn Văn Cao Nguyên <nguyennvc@greennode.ai>
Link: https://patch.msgid.link/20260930-irdma-reset-fresh-qp-v1-1-065327274e2b@greennode.ai
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
