IB/rdmavt, IB/hfi1, IB/qib: Add inlines for mtu division
Add rvt_div_round_up_mtu() and rvt_div_mtu() routines to do the computation based on the pmtu and the log_pmtu. Change divides in qib, hfi1 to use the new inlines. Reviewed-by: Kaike Wan <kaike.wan@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
c64607aa8a
commit
5dc806052a
|
@ -2377,8 +2377,7 @@ void hfi1_rc_rcv(struct hfi1_packet *packet)
|
||||||
* Update the next expected PSN. We add 1 later
|
* Update the next expected PSN. We add 1 later
|
||||||
* below, so only add the remainder here.
|
* below, so only add the remainder here.
|
||||||
*/
|
*/
|
||||||
if (len > pmtu)
|
qp->r_psn += rvt_div_mtu(qp, len - 1);
|
||||||
qp->r_psn += (len - 1) / pmtu;
|
|
||||||
} else {
|
} else {
|
||||||
e->rdma_sge.mr = NULL;
|
e->rdma_sge.mr = NULL;
|
||||||
e->rdma_sge.vaddr = NULL;
|
e->rdma_sge.vaddr = NULL;
|
||||||
|
|
|
@ -2079,8 +2079,7 @@ void qib_rc_rcv(struct qib_ctxtdata *rcd, struct ib_header *hdr,
|
||||||
* Update the next expected PSN. We add 1 later
|
* Update the next expected PSN. We add 1 later
|
||||||
* below, so only add the remainder here.
|
* below, so only add the remainder here.
|
||||||
*/
|
*/
|
||||||
if (len > pmtu)
|
qp->r_psn += rvt_div_mtu(qp, len - 1);
|
||||||
qp->r_psn += (len - 1) / pmtu;
|
|
||||||
} else {
|
} else {
|
||||||
e->rdma_sge.mr = NULL;
|
e->rdma_sge.mr = NULL;
|
||||||
e->rdma_sge.vaddr = NULL;
|
e->rdma_sge.vaddr = NULL;
|
||||||
|
|
|
@ -582,7 +582,29 @@ static inline void rvt_qp_swqe_complete(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern const int ib_rvt_state_ops[];
|
/**
|
||||||
|
* @qp - the qp pair
|
||||||
|
* @len - the length
|
||||||
|
*
|
||||||
|
* Perform a shift based mtu round up divide
|
||||||
|
*/
|
||||||
|
static inline u32 rvt_div_round_up_mtu(struct rvt_qp *qp, u32 len)
|
||||||
|
{
|
||||||
|
return (len + qp->pmtu - 1) >> qp->log_pmtu;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @qp - the qp pair
|
||||||
|
* @len - the length
|
||||||
|
*
|
||||||
|
* Perform a shift based mtu divide
|
||||||
|
*/
|
||||||
|
static inline u32 rvt_div_mtu(struct rvt_qp *qp, u32 len)
|
||||||
|
{
|
||||||
|
return len >> qp->log_pmtu;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern const int ib_rvt_state_ops[];
|
||||||
|
|
||||||
struct rvt_dev_info;
|
struct rvt_dev_info;
|
||||||
int rvt_error_qp(struct rvt_qp *qp, enum ib_wc_status err);
|
int rvt_error_qp(struct rvt_qp *qp, enum ib_wc_status err);
|
||||||
|
|
Loading…
Reference in New Issue