RDMA/nes: Fix for the ORD value of the connecting peer
authorTatyana Nikolova <Tatyana.E.Nikolova@intel.com>
Fri, 11 May 2012 15:46:16 +0000 (10:46 -0500)
committerRoland Dreier <roland@purestorage.com>
Mon, 14 May 2012 19:47:18 +0000 (12:47 -0700)
Set ORD value of the connecting peer to be at least one in order to
accommodate an RDMA READ Request message.

Signed-off-by: Tatyana Nikolova <Tatyana.E.Nikolova@intel.com>
Signed-off-by: Donald Wood <Donald.E.Wood@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/nes/nes_cm.c

index 71edfbbcce1c415fac90b8993a5415a3c1f8c2d4..5c10cbfa2668824239e810289f7d2a60f314fb35 100644 (file)
@@ -3320,6 +3320,10 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
 
        nesqp->private_data_len = conn_param->private_data_len;
        nesqp->nesqp_context->ird_ord_sizes |= cpu_to_le32((u32)conn_param->ord);
+       /* space for rdma0 read msg */
+       if (conn_param->ord == 0)
+               nesqp->nesqp_context->ird_ord_sizes |= cpu_to_le32(1);
+
        nes_debug(NES_DBG_CM, "requested ord = 0x%08X.\n", (u32)conn_param->ord);
        nes_debug(NES_DBG_CM, "mpa private data len =%u\n",
                  conn_param->private_data_len);