mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-28 04:17:47 +00:00
IB/qib, IB/hfi1: Fix grh creation in ud loopback
Instead of copying the actual GRH of type struct ib_grh, existing code copies the struct ib_global_route into the sge. This patch fixes that and constructs the actual GRH from ib_global_route and copies the GRH into the sge. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Reviewed-by: Dean Luick <dean.luick@intel.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com> Signed-off-by: Don Hiatt <don.hiatt@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
b736a469f9
commit
527dbf12e0
@ -184,8 +184,12 @@ static void ud_loopback(struct rvt_qp *sqp, struct rvt_swqe *swqe)
|
||||
}
|
||||
|
||||
if (ah_attr->ah_flags & IB_AH_GRH) {
|
||||
hfi1_copy_sge(&qp->r_sge, &ah_attr->grh,
|
||||
sizeof(struct ib_grh), 1, 0);
|
||||
struct ib_grh grh;
|
||||
struct ib_global_route grd = ah_attr->grh;
|
||||
|
||||
hfi1_make_grh(ibp, &grh, &grd, 0, 0);
|
||||
hfi1_copy_sge(&qp->r_sge, &grh,
|
||||
sizeof(grh), 1, 0);
|
||||
wc.wc_flags |= IB_WC_GRH;
|
||||
} else {
|
||||
hfi1_skip_sge(&qp->r_sge, sizeof(struct ib_grh), 1);
|
||||
|
@ -169,8 +169,12 @@ static void qib_ud_loopback(struct rvt_qp *sqp, struct rvt_swqe *swqe)
|
||||
}
|
||||
|
||||
if (ah_attr->ah_flags & IB_AH_GRH) {
|
||||
qib_copy_sge(&qp->r_sge, &ah_attr->grh,
|
||||
sizeof(struct ib_grh), 1);
|
||||
struct ib_grh grh;
|
||||
struct ib_global_route grd = ah_attr->grh;
|
||||
|
||||
qib_make_grh(ibp, &grh, &grd, 0, 0);
|
||||
qib_copy_sge(&qp->r_sge, &grh,
|
||||
sizeof(grh), 1);
|
||||
wc.wc_flags |= IB_WC_GRH;
|
||||
} else
|
||||
qib_skip_sge(&qp->r_sge, sizeof(struct ib_grh), 1);
|
||||
|
Loading…
Reference in New Issue
Block a user