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
|
||||
* below, so only add the remainder here.
|
||||
*/
|
||||
if (len > pmtu)
|
||||
qp->r_psn += (len - 1) / pmtu;
|
||||
qp->r_psn += rvt_div_mtu(qp, len - 1);
|
||||
} else {
|
||||
e->rdma_sge.mr = 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
|
||||
* below, so only add the remainder here.
|
||||
*/
|
||||
if (len > pmtu)
|
||||
qp->r_psn += (len - 1) / pmtu;
|
||||
qp->r_psn += rvt_div_mtu(qp, len - 1);
|
||||
} else {
|
||||
e->rdma_sge.mr = NULL;
|
||||
e->rdma_sge.vaddr = NULL;
|
||||
|
|
|
@ -582,6 +582,28 @@ static inline void rvt_qp_swqe_complete(
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @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;
|
||||
|
|
Loading…
Reference in New Issue