|
@@ -2227,10 +2227,13 @@ static int bnxt_re_build_inv_wqe(struct ib_send_wr *wr,
|
|
|
wqe->type = BNXT_QPLIB_SWQE_TYPE_LOCAL_INV;
|
|
|
wqe->local_inv.inv_l_key = wr->ex.invalidate_rkey;
|
|
|
|
|
|
+ /* Need unconditional fence for local invalidate
|
|
|
+ * opcode to work as expected.
|
|
|
+ */
|
|
|
+ wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE;
|
|
|
+
|
|
|
if (wr->send_flags & IB_SEND_SIGNALED)
|
|
|
wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP;
|
|
|
- if (wr->send_flags & IB_SEND_FENCE)
|
|
|
- wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE;
|
|
|
if (wr->send_flags & IB_SEND_SOLICITED)
|
|
|
wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SOLICIT_EVENT;
|
|
|
|
|
@@ -2251,8 +2254,12 @@ static int bnxt_re_build_reg_wqe(struct ib_reg_wr *wr,
|
|
|
wqe->frmr.levels = qplib_frpl->hwq.level + 1;
|
|
|
wqe->type = BNXT_QPLIB_SWQE_TYPE_REG_MR;
|
|
|
|
|
|
- if (wr->wr.send_flags & IB_SEND_FENCE)
|
|
|
- wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE;
|
|
|
+ /* Need unconditional fence for reg_mr
|
|
|
+ * opcode to function as expected.
|
|
|
+ */
|
|
|
+
|
|
|
+ wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE;
|
|
|
+
|
|
|
if (wr->wr.send_flags & IB_SEND_SIGNALED)
|
|
|
wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP;
|
|
|
|