Commit 1dd6a1be authored by Ralph Campbell's avatar Ralph Campbell Committed by Roland Dreier

IB/ipath: Set M bit in BTH according to IB spec

According to chapter 17.2.8.1.1, QPs start in the migrated state and
should send packets with the M bit set in the BTH.
Signed-off-by: default avatarRalph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent 6d2fad04
...@@ -188,7 +188,7 @@ static int ipath_make_rc_ack(struct ipath_qp *qp, ...@@ -188,7 +188,7 @@ static int ipath_make_rc_ack(struct ipath_qp *qp,
} }
qp->s_hdrwords = hwords; qp->s_hdrwords = hwords;
qp->s_cur_size = len; qp->s_cur_size = len;
*bth0p = bth0; *bth0p = bth0 | (1 << 22); /* Set M bit */
*bth2p = bth2; *bth2p = bth2;
return 1; return 1;
...@@ -240,7 +240,7 @@ int ipath_make_rc_req(struct ipath_qp *qp, ...@@ -240,7 +240,7 @@ int ipath_make_rc_req(struct ipath_qp *qp,
/* header size in 32-bit words LRH+BTH = (8+12)/4. */ /* header size in 32-bit words LRH+BTH = (8+12)/4. */
hwords = 5; hwords = 5;
bth0 = 0; bth0 = 1 << 22; /* Set M bit */
/* Send a request. */ /* Send a request. */
wqe = get_swqe_ptr(qp, qp->s_cur); wqe = get_swqe_ptr(qp, qp->s_cur);
...@@ -604,7 +604,7 @@ static void send_rc_ack(struct ipath_qp *qp) ...@@ -604,7 +604,7 @@ static void send_rc_ack(struct ipath_qp *qp)
} }
/* read pkey_index w/o lock (its atomic) */ /* read pkey_index w/o lock (its atomic) */
bth0 = ipath_get_pkey(dev->dd, qp->s_pkey_index) | bth0 = ipath_get_pkey(dev->dd, qp->s_pkey_index) |
OP(ACKNOWLEDGE) << 24; (OP(ACKNOWLEDGE) << 24) | (1 << 22);
if (qp->r_nak_state) if (qp->r_nak_state)
ohdr->u.aeth = cpu_to_be32((qp->r_msn & IPATH_MSN_MASK) | ohdr->u.aeth = cpu_to_be32((qp->r_msn & IPATH_MSN_MASK) |
(qp->r_nak_state << (qp->r_nak_state <<
......
...@@ -86,7 +86,7 @@ int ipath_make_uc_req(struct ipath_qp *qp, ...@@ -86,7 +86,7 @@ int ipath_make_uc_req(struct ipath_qp *qp,
/* header size in 32-bit words LRH+BTH = (8+12)/4. */ /* header size in 32-bit words LRH+BTH = (8+12)/4. */
hwords = 5; hwords = 5;
bth0 = 0; bth0 = 1 << 22; /* Set M bit */
/* Get the next send request. */ /* Get the next send request. */
wqe = get_swqe_ptr(qp, qp->s_last); wqe = get_swqe_ptr(qp, qp->s_last);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment