提交 99fc12f6 编写于 作者: P Parav Pandit 提交者: Doug Ledford

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: NMoni Shoua <monis@mellanox.com>
Signed-off-by: NParav Pandit <parav@mellanox.com>
Signed-off-by: NLeon Romanovsky <leon@kernel.org>
Reviewed-by: NYuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: NDoug Ledford <dledford@redhat.com>
上级 0b1e5b99
...@@ -273,10 +273,11 @@ static int rxe_qp_init_req(struct rxe_dev *rxe, struct rxe_qp *qp, ...@@ -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_init_task(rxe, &qp->comp.task, qp,
rxe_completer, "comp"); rxe_completer, "comp");
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 */ 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);
}
return 0; return 0;
} }
...@@ -804,8 +805,10 @@ void rxe_qp_destroy(struct rxe_qp *qp) ...@@ -804,8 +805,10 @@ void rxe_qp_destroy(struct rxe_qp *qp)
qp->qp_timeout_jiffies = 0; qp->qp_timeout_jiffies = 0;
rxe_cleanup_task(&qp->resp.task); rxe_cleanup_task(&qp->resp.task);
del_timer_sync(&qp->retrans_timer); if (qp_type(qp) == IB_QPT_RC) {
del_timer_sync(&qp->rnr_nak_timer); del_timer_sync(&qp->retrans_timer);
del_timer_sync(&qp->rnr_nak_timer);
}
rxe_cleanup_task(&qp->req.task); rxe_cleanup_task(&qp->req.task);
rxe_cleanup_task(&qp->comp.task); rxe_cleanup_task(&qp->comp.task);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册