Skip to content

Commit 7358799

Browse files
committed
Merge branch 'net-smc-fixes'
Ursula Braun says: ==================== net/smc: fixes 2018-02-28 here are 3 smc bug fixes for the net-tree. Karsten's first patch is the reworked version of last week's "[PATCH net-next 2/5] net/smc: fix structure size" patch, now solved without using __packed, and now targetted for net instead of net-next. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2 parents 4e09ff5 + a5dcb73 commit 7358799

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

net/smc/af_smc.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1406,8 +1406,10 @@ static int smc_create(struct net *net, struct socket *sock, int protocol,
14061406
smc->use_fallback = false; /* assume rdma capability first */
14071407
rc = sock_create_kern(net, PF_INET, SOCK_STREAM,
14081408
IPPROTO_TCP, &smc->clcsock);
1409-
if (rc)
1409+
if (rc) {
14101410
sk_common_release(sk);
1411+
goto out;
1412+
}
14111413
smc->sk.sk_sndbuf = max(smc->clcsock->sk->sk_sndbuf, SMC_BUF_MIN_SIZE);
14121414
smc->sk.sk_rcvbuf = max(smc->clcsock->sk->sk_rcvbuf, SMC_BUF_MIN_SIZE);
14131415

net/smc/smc_cdc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ static void smc_cdc_rx_handler(struct ib_wc *wc, void *buf)
269269

270270
if (wc->byte_len < offsetof(struct smc_cdc_msg, reserved))
271271
return; /* short message */
272-
if (cdc->len != sizeof(*cdc))
272+
if (cdc->len != SMC_WR_TX_SIZE)
273273
return; /* invalid message */
274274
smc_cdc_msg_recv(cdc, link, wc->wr_id);
275275
}

net/smc/smc_core.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ static int smc_lgr_create(struct smc_sock *smc, __be32 peer_in_addr,
177177

178178
lnk = &lgr->lnk[SMC_SINGLE_LINK];
179179
/* initialize link */
180+
lnk->link_id = SMC_SINGLE_LINK;
180181
lnk->smcibdev = smcibdev;
181182
lnk->ibport = ibport;
182183
lnk->path_mtu = smcibdev->pattr[ibport - 1].active_mtu;
@@ -465,7 +466,7 @@ int smc_conn_create(struct smc_sock *smc, __be32 peer_in_addr,
465466
rc = smc_link_determine_gid(conn->lgr);
466467
}
467468
conn->local_tx_ctrl.common.type = SMC_CDC_MSG_TYPE;
468-
conn->local_tx_ctrl.len = sizeof(struct smc_cdc_msg);
469+
conn->local_tx_ctrl.len = SMC_WR_TX_SIZE;
469470
#ifndef KERNEL_HAS_ATOMIC64
470471
spin_lock_init(&conn->acurs_lock);
471472
#endif

net/smc/smc_llc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ int smc_llc_send_confirm_link(struct smc_link *link, u8 mac[],
9292
memcpy(confllc->sender_mac, mac, ETH_ALEN);
9393
memcpy(confllc->sender_gid, gid, SMC_GID_SIZE);
9494
hton24(confllc->sender_qp_num, link->roce_qp->qp_num);
95-
/* confllc->link_num = SMC_SINGLE_LINK; already done by memset above */
95+
confllc->link_num = link->link_id;
9696
memcpy(confllc->link_uid, lgr->id, SMC_LGR_ID_SIZE);
9797
confllc->max_links = SMC_LINKS_PER_LGR_MAX;
9898
/* send llc message */

0 commit comments

Comments
 (0)