Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 99fc12f6 authored by Parav Pandit's avatar Parav Pandit Committed by Doug Ledford
Browse files

IB/rxe: Avoid accessing timers for non RC QPs



This patch avoids RNR NAK timer and retransmit timer initialization and
cleanup for non RC QPs (such as UD QP, GSI QP).

Reviewed-by: default avatarMoni Shoua <monis@mellanox.com>
Signed-off-by: default avatarParav Pandit <parav@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Reviewed-by: default avatarYuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 0b1e5b99
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -273,10 +273,11 @@ static int rxe_qp_init_req(struct rxe_dev *rxe, struct rxe_qp *qp,
	rxe_init_task(rxe, &qp->comp.task, qp,
		      rxe_completer, "comp");

	qp->qp_timeout_jiffies = 0; /* Can't be set for UD/UC in modify_qp */
	if (init->qp_type == IB_QPT_RC) {
		setup_timer(&qp->rnr_nak_timer, rnr_nak_timer, (unsigned long)qp);
		setup_timer(&qp->retrans_timer, retransmit_timer, (unsigned long)qp);
	qp->qp_timeout_jiffies = 0; /* Can't be set for UD/UC in modify_qp */

	}
	return 0;
}

@@ -804,8 +805,10 @@ void rxe_qp_destroy(struct rxe_qp *qp)
	qp->qp_timeout_jiffies = 0;
	rxe_cleanup_task(&qp->resp.task);

	if (qp_type(qp) == IB_QPT_RC) {
		del_timer_sync(&qp->retrans_timer);
		del_timer_sync(&qp->rnr_nak_timer);
	}

	rxe_cleanup_task(&qp->req.task);
	rxe_cleanup_task(&qp->comp.task);