| From 369537c97024dca99303a8d4d6ab38b4f54d3909 Mon Sep 17 00:00:00 2001 |
| From: Ursula Braun <ubraun@linux.ibm.com> |
| Date: Fri, 14 Feb 2020 08:59:00 +0100 |
| Subject: net/smc: no peer ID in CLC decline for SMCD |
| |
| From: Ursula Braun <ubraun@linux.ibm.com> |
| |
| 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> |
| |
| --- |
| net/smc/smc_clc.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/net/smc/smc_clc.c |
| +++ b/net/smc/smc_clc.c |
| @@ -372,7 +372,9 @@ int smc_clc_send_decline(struct smc_sock |
| 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)); |
| |