IB/{rdmavt, hfi1, qib}: Add helpers to hide SWQE WR details
Add some helper functions to hide struct rvt_swqe details. Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:

کامیت شده توسط
Jason Gunthorpe

والد
d310c4bf8a
کامیت
2b0ad2da8f
@@ -64,7 +64,7 @@ static void qib_ud_loopback(struct rvt_qp *sqp, struct rvt_swqe *swqe)
|
||||
enum ib_qp_type sqptype, dqptype;
|
||||
|
||||
rcu_read_lock();
|
||||
qp = rvt_lookup_qpn(rdi, &ibp->rvp, swqe->ud_wr.wr.remote_qpn);
|
||||
qp = rvt_lookup_qpn(rdi, &ibp->rvp, rvt_get_swqe_remote_qpn(swqe));
|
||||
if (!qp) {
|
||||
ibp->rvp.n_pkt_drops++;
|
||||
goto drop;
|
||||
@@ -81,7 +81,7 @@ static void qib_ud_loopback(struct rvt_qp *sqp, struct rvt_swqe *swqe)
|
||||
goto drop;
|
||||
}
|
||||
|
||||
ah_attr = swqe->ud_wr.attr;
|
||||
ah_attr = rvt_get_swqe_ah_attr(swqe);
|
||||
ppd = ppd_from_ibp(ibp);
|
||||
|
||||
if (qp->ibqp.qp_num > 1) {
|
||||
@@ -111,8 +111,8 @@ static void qib_ud_loopback(struct rvt_qp *sqp, struct rvt_swqe *swqe)
|
||||
if (qp->ibqp.qp_num) {
|
||||
u32 qkey;
|
||||
|
||||
qkey = (int)swqe->ud_wr.wr.remote_qkey < 0 ?
|
||||
sqp->qkey : swqe->ud_wr.wr.remote_qkey;
|
||||
qkey = (int)rvt_get_swqe_remote_qkey(swqe) < 0 ?
|
||||
sqp->qkey : rvt_get_swqe_remote_qkey(swqe);
|
||||
if (unlikely(qkey != qp->qkey))
|
||||
goto drop;
|
||||
}
|
||||
@@ -204,7 +204,7 @@ static void qib_ud_loopback(struct rvt_qp *sqp, struct rvt_swqe *swqe)
|
||||
wc.qp = &qp->ibqp;
|
||||
wc.src_qp = sqp->ibqp.qp_num;
|
||||
wc.pkey_index = qp->ibqp.qp_type == IB_QPT_GSI ?
|
||||
swqe->ud_wr.wr.pkey_index : 0;
|
||||
rvt_get_swqe_pkey_index(swqe) : 0;
|
||||
wc.slid = ppd->lid | (rdma_ah_get_path_bits(ah_attr) &
|
||||
((1 << ppd->lmc) - 1));
|
||||
wc.sl = rdma_ah_get_sl(ah_attr);
|
||||
@@ -271,7 +271,7 @@ int qib_make_ud_req(struct rvt_qp *qp, unsigned long *flags)
|
||||
/* Construct the header. */
|
||||
ibp = to_iport(qp->ibqp.device, qp->port_num);
|
||||
ppd = ppd_from_ibp(ibp);
|
||||
ah_attr = wqe->ud_wr.attr;
|
||||
ah_attr = rvt_get_swqe_ah_attr(wqe);
|
||||
if (rdma_ah_get_dlid(ah_attr) >= be16_to_cpu(IB_MULTICAST_LID_BASE)) {
|
||||
if (rdma_ah_get_dlid(ah_attr) !=
|
||||
be16_to_cpu(IB_LID_PERMISSIVE))
|
||||
@@ -363,7 +363,7 @@ int qib_make_ud_req(struct rvt_qp *qp, unsigned long *flags)
|
||||
bth0 |= extra_bytes << 20;
|
||||
bth0 |= qp->ibqp.qp_type == IB_QPT_SMI ? QIB_DEFAULT_P_KEY :
|
||||
qib_get_pkey(ibp, qp->ibqp.qp_type == IB_QPT_GSI ?
|
||||
wqe->ud_wr.wr.pkey_index : qp->s_pkey_index);
|
||||
rvt_get_swqe_pkey_index(wqe) : qp->s_pkey_index);
|
||||
ohdr->bth[0] = cpu_to_be32(bth0);
|
||||
/*
|
||||
* Use the multicast QP if the destination LID is a multicast LID.
|
||||
@@ -372,14 +372,15 @@ int qib_make_ud_req(struct rvt_qp *qp, unsigned long *flags)
|
||||
be16_to_cpu(IB_MULTICAST_LID_BASE) &&
|
||||
rdma_ah_get_dlid(ah_attr) != be16_to_cpu(IB_LID_PERMISSIVE) ?
|
||||
cpu_to_be32(QIB_MULTICAST_QPN) :
|
||||
cpu_to_be32(wqe->ud_wr.wr.remote_qpn);
|
||||
cpu_to_be32(rvt_get_swqe_remote_qpn(wqe));
|
||||
ohdr->bth[2] = cpu_to_be32(wqe->psn & QIB_PSN_MASK);
|
||||
/*
|
||||
* Qkeys with the high order bit set mean use the
|
||||
* qkey from the QP context instead of the WR (see 10.2.5).
|
||||
*/
|
||||
ohdr->u.ud.deth[0] = cpu_to_be32((int)wqe->ud_wr.wr.remote_qkey < 0 ?
|
||||
qp->qkey : wqe->ud_wr.wr.remote_qkey);
|
||||
ohdr->u.ud.deth[0] =
|
||||
cpu_to_be32((int)rvt_get_swqe_remote_qkey(wqe) < 0 ? qp->qkey :
|
||||
rvt_get_swqe_remote_qkey(wqe));
|
||||
ohdr->u.ud.deth[1] = cpu_to_be32(qp->ibqp.qp_num);
|
||||
|
||||
done:
|
||||
|
مرجع در شماره جدید
Block a user