diff options
-rw-r--r-- | drivers/infiniband/sw/rdmavt/qp.c | 4 | ||||
-rw-r--r-- | include/rdma/rdmavt_qp.h | 14 |
2 files changed, 15 insertions, 3 deletions
diff --git a/drivers/infiniband/sw/rdmavt/qp.c b/drivers/infiniband/sw/rdmavt/qp.c index 459865439a0b..8876ee7bc326 100644 --- a/drivers/infiniband/sw/rdmavt/qp.c +++ b/drivers/infiniband/sw/rdmavt/qp.c | |||
@@ -1258,9 +1258,7 @@ int rvt_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, | |||
1258 | 1258 | ||
1259 | if (attr_mask & IB_QP_TIMEOUT) { | 1259 | if (attr_mask & IB_QP_TIMEOUT) { |
1260 | qp->timeout = attr->timeout; | 1260 | qp->timeout = attr->timeout; |
1261 | qp->timeout_jiffies = | 1261 | qp->timeout_jiffies = rvt_timeout_to_jiffies(qp->timeout); |
1262 | usecs_to_jiffies((4096UL * (1UL << qp->timeout)) / | ||
1263 | 1000UL); | ||
1264 | } | 1262 | } |
1265 | 1263 | ||
1266 | if (attr_mask & IB_QP_QKEY) | 1264 | if (attr_mask & IB_QP_QKEY) |
diff --git a/include/rdma/rdmavt_qp.h b/include/rdma/rdmavt_qp.h index be6472e5b06b..d664d2e76280 100644 --- a/include/rdma/rdmavt_qp.h +++ b/include/rdma/rdmavt_qp.h | |||
@@ -647,6 +647,20 @@ static inline u32 rvt_div_mtu(struct rvt_qp *qp, u32 len) | |||
647 | return len >> qp->log_pmtu; | 647 | return len >> qp->log_pmtu; |
648 | } | 648 | } |
649 | 649 | ||
650 | /** | ||
651 | * rvt_timeout_to_jiffies - Convert a ULP timeout input into jiffies | ||
652 | * @timeout - timeout input(0 - 31). | ||
653 | * | ||
654 | * Return a timeout value in jiffies. | ||
655 | */ | ||
656 | static inline unsigned long rvt_timeout_to_jiffies(u8 timeout) | ||
657 | { | ||
658 | if (timeout > 31) | ||
659 | timeout = 31; | ||
660 | |||
661 | return usecs_to_jiffies(1U << timeout) * 4096UL / 1000UL; | ||
662 | } | ||
663 | |||
650 | extern const int ib_rvt_state_ops[]; | 664 | extern const int ib_rvt_state_ops[]; |
651 | 665 | ||
652 | struct rvt_dev_info; | 666 | struct rvt_dev_info; |