summaryrefslogtreecommitdiffstats
path: root/net/smc/af_smc.c
diff options
context:
space:
mode:
authorWen Gu <guwen@linux.alibaba.com>2023-12-07 01:02:37 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-12-13 18:45:11 +0100
commitf9eef2563234b3f77df279d95673cb6293f2aab1 (patch)
treeb075a8b59fa2e9969ccc8758b6d8be835bf7ebe2 /net/smc/af_smc.c
parentb03b2ddf0e9060c327bdfc7141293d16ed454e16 (diff)
downloadlinux-stable-f9eef2563234b3f77df279d95673cb6293f2aab1.tar.gz
linux-stable-f9eef2563234b3f77df279d95673cb6293f2aab1.tar.bz2
linux-stable-f9eef2563234b3f77df279d95673cb6293f2aab1.zip
net/smc: fix missing byte order conversion in CLC handshake
[ Upstream commit c5a10397d4571bcfd4bd7ca211ee47bcb6792ec3 ] The byte order conversions of ISM GID and DMB token are missing in process of CLC accept and confirm. So fix it. Fixes: 3d9725a6a133 ("net/smc: common routine for CLC accept and confirm") Signed-off-by: Wen Gu <guwen@linux.alibaba.com> Reviewed-by: Tony Lu <tonylu@linux.alibaba.com> Reviewed-by: Alexandra Winter <wintera@linux.ibm.com> Reviewed-by: Wenjia Zhang <wenjia@linux.ibm.com> Link: https://lore.kernel.org/r/1701882157-87956-1-git-send-email-guwen@linux.alibaba.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net/smc/af_smc.c')
-rw-r--r--net/smc/af_smc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c
index 741339ac9483..ef5b5d498ef3 100644
--- a/net/smc/af_smc.c
+++ b/net/smc/af_smc.c
@@ -723,7 +723,7 @@ static void smcd_conn_save_peer_info(struct smc_sock *smc,
int bufsize = smc_uncompress_bufsize(clc->d0.dmbe_size);
smc->conn.peer_rmbe_idx = clc->d0.dmbe_idx;
- smc->conn.peer_token = clc->d0.token;
+ smc->conn.peer_token = ntohll(clc->d0.token);
/* msg header takes up space in the buffer */
smc->conn.peer_rmbe_size = bufsize - sizeof(struct smcd_cdc_msg);
atomic_set(&smc->conn.peer_rmbe_space, smc->conn.peer_rmbe_size);
@@ -1415,7 +1415,7 @@ static int smc_connect_ism(struct smc_sock *smc,
if (rc)
return rc;
}
- ini->ism_peer_gid[ini->ism_selected] = aclc->d0.gid;
+ ini->ism_peer_gid[ini->ism_selected] = ntohll(aclc->d0.gid);
/* there is only one lgr role for SMC-D; use server lock */
mutex_lock(&smc_server_lgr_pending);