net/smc: use link_id of server in confirm link reply
authorKarsten Graul <kgraul@linux.vnet.ibm.com>
Wed, 28 Feb 2018 11:44:08 +0000 (12:44 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Feb 2018 17:30:25 +0000 (12:30 -0500)
The CONFIRM LINK reply message must contain the link_id sent
by the server. And set the link_id explicitly when
initializing the link.

Signed-off-by: Karsten Graul <kgraul@linux.vnet.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/smc/smc_core.c
net/smc/smc_llc.c

index 053f0e66bec70fce6ab7f912eb5949457a9e62f3..645dd226177b67c15eb6d0a63ee1d9f300e97dcf 100644 (file)
@@ -177,6 +177,7 @@ static int smc_lgr_create(struct smc_sock *smc, __be32 peer_in_addr,
 
        lnk = &lgr->lnk[SMC_SINGLE_LINK];
        /* initialize link */
+       lnk->link_id = SMC_SINGLE_LINK;
        lnk->smcibdev = smcibdev;
        lnk->ibport = ibport;
        lnk->path_mtu = smcibdev->pattr[ibport - 1].active_mtu;
index 92fe4cc8c82c2f0e860c40e40e61e1fa1ccea427..b4aa4fcedb96e5feeaa29c1126589502480b5fe2 100644 (file)
@@ -92,7 +92,7 @@ int smc_llc_send_confirm_link(struct smc_link *link, u8 mac[],
        memcpy(confllc->sender_mac, mac, ETH_ALEN);
        memcpy(confllc->sender_gid, gid, SMC_GID_SIZE);
        hton24(confllc->sender_qp_num, link->roce_qp->qp_num);
-       /* confllc->link_num = SMC_SINGLE_LINK; already done by memset above */
+       confllc->link_num = link->link_id;
        memcpy(confllc->link_uid, lgr->id, SMC_LGR_ID_SIZE);
        confllc->max_links = SMC_LINKS_PER_LGR_MAX;
        /* send llc message */