From 4fd47c4bbba1d445952602a995d5dc9ae2f039e3 Mon Sep 17 00:00:00 2001 From: Stefan Roscher Date: Mon, 9 Jul 2007 15:27:13 +0200 Subject: [PATCH] --- yaml --- r: 59347 b: refs/heads/master c: 85f003172fc130626261730141ed021258e81f85 h: refs/heads/master i: 59345: ce1f744a0c8f168426ef7ba055fd566c15200241 59343: 1d15aa7a38be9963e23579afdd97ff1a0c417fdd v: v3 --- [refs] | 2 +- trunk/drivers/infiniband/hw/ehca/ehca_qp.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 8b4990e82d85..2dc38a7c6f15 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 472803dab844c0a8a5d757d4c67fa5e76013dcbd +refs/heads/master: 85f003172fc130626261730141ed021258e81f85 diff --git a/trunk/drivers/infiniband/hw/ehca/ehca_qp.c b/trunk/drivers/infiniband/hw/ehca/ehca_qp.c index fa3e03050347..3a4b2bfdb06b 100644 --- a/trunk/drivers/infiniband/hw/ehca/ehca_qp.c +++ b/trunk/drivers/infiniband/hw/ehca/ehca_qp.c @@ -1054,6 +1054,17 @@ static int internal_modify_qp(struct ib_qp *ibqp, "ehca_qp=%p qp_num=%x qp_state_xsit=%x", my_qp, ibqp->qp_num, statetrans); + /* eHCA2 rev2 and higher require the SEND_GRH_FLAG to be set + * in non-LL UD QPs. + */ + if ((my_qp->qp_type == IB_QPT_UD) && + (my_qp->ext_type != EQPT_LLQP) && + (statetrans == IB_QPST_INIT2RTR) && + (shca->hw_level >= 0x22)) { + update_mask |= EHCA_BMASK_SET(MQPCB_MASK_SEND_GRH_FLAG, 1); + mqpcb->send_grh_flag = 1; + } + /* sqe -> rts: set purge bit of bad wqe before actual trans */ if ((my_qp->qp_type == IB_QPT_UD || my_qp->qp_type == IB_QPT_GSI ||