net/smc: do not use IB_SEND_INLINE together with mapped data
authorUrsula Braun <ubraun@linux.vnet.ibm.com>
Mon, 10 Apr 2017 12:58:05 +0000 (14:58 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Apr 2017 03:01:14 +0000 (23:01 -0400)
smc specifies IB_SEND_INLINE for IB_WR_SEND ib_post_send calls, but
provides a mapped buffer to be sent. This is inconsistent, since
IB_SEND_INLINE works without mapped buffer. Problem has not been
detected in the past, because tests had been limited to Connect X3 cards
from Mellanox, whose mlx4 driver just ignored the IB_SEND_INLINE flag.
For now, the IB_SEND_INLINE flag is removed.

Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
Reviewed-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/smc/smc_ib.c
net/smc/smc_wr.c

index b76257798ba582f200c1ffb5abc48afc90c83811..16b7c801f8b662630f11e32f79c54f7e2774be11 100644 (file)
@@ -257,7 +257,6 @@ int smc_ib_create_queue_pair(struct smc_link *lnk)
                        .max_recv_wr = SMC_WR_BUF_CNT * 3,
                        .max_send_sge = SMC_IB_MAX_SEND_SGE,
                        .max_recv_sge = 1,
-                       .max_inline_data = SMC_WR_TX_SIZE,
                },
                .sq_sig_type = IB_SIGNAL_REQ_WR,
                .qp_type = IB_QPT_RC,
index eadf157418dcd42c036685e5858bea6e5c559506..874ee9f9d79674f9576c28f9d1dd669e03e62422 100644 (file)
@@ -447,7 +447,7 @@ static void smc_wr_init_sge(struct smc_link *lnk)
                lnk->wr_tx_ibs[i].num_sge = 1;
                lnk->wr_tx_ibs[i].opcode = IB_WR_SEND;
                lnk->wr_tx_ibs[i].send_flags =
-                       IB_SEND_SIGNALED | IB_SEND_SOLICITED | IB_SEND_INLINE;
+                       IB_SEND_SIGNALED | IB_SEND_SOLICITED;
        }
        for (i = 0; i < lnk->wr_rx_cnt; i++) {
                lnk->wr_rx_sges[i].addr =