diff options
author | Stefan Roscher <stefan.roscher@de.ibm.com> | 2007-07-09 09:27:13 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-07-09 23:12:27 -0400 |
commit | 85f003172fc130626261730141ed021258e81f85 (patch) | |
tree | 155518aee49caeaf00e686a4c662bea2061f6caf /drivers/infiniband/hw | |
parent | 472803dab844c0a8a5d757d4c67fa5e76013dcbd (diff) |
IB/ehca: Set SEND_GRH flag for all non-LL UD QPs on eHCA2
Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_qp.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c index fa3e03050347..3a4b2bfdb06b 100644 --- a/drivers/infiniband/hw/ehca/ehca_qp.c +++ b/drivers/infiniband/hw/ehca/ehca_qp.c | |||
@@ -1054,6 +1054,17 @@ static int internal_modify_qp(struct ib_qp *ibqp, | |||
1054 | "ehca_qp=%p qp_num=%x <VALID STATE CHANGE> qp_state_xsit=%x", | 1054 | "ehca_qp=%p qp_num=%x <VALID STATE CHANGE> qp_state_xsit=%x", |
1055 | my_qp, ibqp->qp_num, statetrans); | 1055 | my_qp, ibqp->qp_num, statetrans); |
1056 | 1056 | ||
1057 | /* eHCA2 rev2 and higher require the SEND_GRH_FLAG to be set | ||
1058 | * in non-LL UD QPs. | ||
1059 | */ | ||
1060 | if ((my_qp->qp_type == IB_QPT_UD) && | ||
1061 | (my_qp->ext_type != EQPT_LLQP) && | ||
1062 | (statetrans == IB_QPST_INIT2RTR) && | ||
1063 | (shca->hw_level >= 0x22)) { | ||
1064 | update_mask |= EHCA_BMASK_SET(MQPCB_MASK_SEND_GRH_FLAG, 1); | ||
1065 | mqpcb->send_grh_flag = 1; | ||
1066 | } | ||
1067 | |||
1057 | /* sqe -> rts: set purge bit of bad wqe before actual trans */ | 1068 | /* sqe -> rts: set purge bit of bad wqe before actual trans */ |
1058 | if ((my_qp->qp_type == IB_QPT_UD || | 1069 | if ((my_qp->qp_type == IB_QPT_UD || |
1059 | my_qp->qp_type == IB_QPT_GSI || | 1070 | my_qp->qp_type == IB_QPT_GSI || |