From: Konstantin Taranov <kotaranov@microsoft.com>
Date: Wed, 31 Jul 2024 11:05:53 +0200
Subject: providers/mana: Fix modify RC QPs for RTS and INIT states

Reset RC QP state on RESET as user can submit
receive request during INIT state.
Use attr->sq_psn only when IBV_QP_SQ_PSN is specified.

Fixes: 166c46bc7bbd ("providers/mana: Implement modify QP state")
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com>
Origin: upstream, https://github.com/linux-rdma/rdma-core/pull/1556
---
 providers/mana/qp.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/providers/mana/qp.c b/providers/mana/qp.c
index a318620..4591cee 100644
--- a/providers/mana/qp.c
+++ b/providers/mana/qp.c
@@ -347,22 +347,24 @@ static void mana_ib_modify_rc_qp(struct mana_qp *qp, struct ibv_qp_attr *attr, i
 
 	switch (attr->qp_state) {
 	case IBV_QPS_RESET:
-	case IBV_QPS_INIT:
 		for (i = 0; i < USER_RC_QUEUE_TYPE_MAX; ++i) {
 			qp->rc_qp.queues[i].prod_idx = 0;
 			qp->rc_qp.queues[i].cons_idx = 0;
 		}
 		mana_ib_reset_rb_shmem(qp);
 		reset_shadow_queue(&qp->shadow_rq);
+		reset_shadow_queue(&qp->shadow_sq);
+	case IBV_QPS_INIT:
 		break;
 	case IBV_QPS_RTR:
 		break;
 	case IBV_QPS_RTS:
-		reset_shadow_queue(&qp->shadow_sq);
-		qp->rc_qp.sq_ssn = 1;
-		qp->rc_qp.sq_psn = attr->sq_psn;
-		qp->rc_qp.sq_highest_completed_psn = PSN_DEC(attr->sq_psn);
-		gdma_arm_normal_cqe(&qp->rc_qp.queues[USER_RC_RECV_QUEUE_REQUESTER], attr->sq_psn);
+		if (attr_mask & IBV_QP_SQ_PSN) {
+			qp->rc_qp.sq_ssn = 1;
+			qp->rc_qp.sq_psn = attr->sq_psn;
+			qp->rc_qp.sq_highest_completed_psn = PSN_DEC(attr->sq_psn);
+			gdma_arm_normal_cqe(&qp->rc_qp.queues[USER_RC_RECV_QUEUE_REQUESTER], attr->sq_psn);
+		}
 		break;
 	default:
 		break;
