summaryrefslogtreecommitdiffstats
path: root/net/smc
diff options
context:
space:
mode:
authorUrsula Braun <ubraun@linux.ibm.com>2020-02-14 08:59:00 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-03-05 16:42:20 +0100
commitc394e3d3f7a96de645ade28d30d8b29935faf053 (patch)
tree1b67198ccdb5cd2358b4207c2540b51bee27fc31 /net/smc
parent5f8a249c57029a3bbb3b5af87273213a9e2d186e (diff)
downloadlinux-stable-c394e3d3f7a96de645ade28d30d8b29935faf053.tar.gz
linux-stable-c394e3d3f7a96de645ade28d30d8b29935faf053.tar.bz2
linux-stable-c394e3d3f7a96de645ade28d30d8b29935faf053.zip
net/smc: no peer ID in CLC decline for SMCD
commit 369537c97024dca99303a8d4d6ab38b4f54d3909 upstream. Just SMCR requires a CLC Peer ID, but not SMCD. The field should be zero for SMCD. Fixes: c758dfddc1b5 ("net/smc: add SMC-D support in CLC messages") Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: Karsten Graul <kgraul@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/smc')
-rw-r--r--net/smc/smc_clc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/smc/smc_clc.c b/net/smc/smc_clc.c
index 52241d679cc9..aa9a17ac1f7b 100644
--- a/net/smc/smc_clc.c
+++ b/net/smc/smc_clc.c
@@ -364,7 +364,9 @@ int smc_clc_send_decline(struct smc_sock *smc, u32 peer_diag_info)
dclc.hdr.length = htons(sizeof(struct smc_clc_msg_decline));
dclc.hdr.version = SMC_CLC_V1;
dclc.hdr.flag = (peer_diag_info == SMC_CLC_DECL_SYNCERR) ? 1 : 0;
- memcpy(dclc.id_for_peer, local_systemid, sizeof(local_systemid));
+ if (smc->conn.lgr && !smc->conn.lgr->is_smcd)
+ memcpy(dclc.id_for_peer, local_systemid,
+ sizeof(local_systemid));
dclc.peer_diagnosis = htonl(peer_diag_info);
memcpy(dclc.trl.eyecatcher, SMC_EYECATCHER, sizeof(SMC_EYECATCHER));