diff options
author | Ursula Braun <ubraun@linux.ibm.com> | 2020-02-14 08:59:00 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-02-14 16:09:36 +0100 |
commit | 369537c97024dca99303a8d4d6ab38b4f54d3909 (patch) | |
tree | 9c0d320edb8d2b084fcd1d721db5aa3315b4bc31 /net | |
parent | net/smc: transfer fasync_list in case of fallback (diff) | |
download | linux-369537c97024dca99303a8d4d6ab38b4f54d3909.tar.xz linux-369537c97024dca99303a8d4d6ab38b4f54d3909.zip |
net/smc: no peer ID in CLC decline for SMCD
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/smc/smc_clc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/smc/smc_clc.c b/net/smc/smc_clc.c index 0879f7bed967..86cccc24e52e 100644 --- a/net/smc/smc_clc.c +++ b/net/smc/smc_clc.c @@ -372,7 +372,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)); |