Skip to content

Commit

Permalink
IB/rxe: Avoid accessing timers for non RC QPs
Browse files Browse the repository at this point in the history
This patch avoids RNR NAK timer and retransmit timer initialization and
cleanup for non RC QPs (such as UD QP, GSI QP).

Reviewed-by: Moni Shoua <monis@mellanox.com>
Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
  • Loading branch information
Parav Pandit authored and Doug Ledford committed Apr 21, 2017
1 parent 0b1e5b9 commit 99fc12f
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions drivers/infiniband/sw/rxe/rxe_qp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");

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 */

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;
}

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

del_timer_sync(&qp->retrans_timer);
del_timer_sync(&qp->rnr_nak_timer);
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);
Expand Down

0 comments on commit 99fc12f

Please sign in to comment.