summaryrefslogtreecommitdiffstats
path: root/net/smc
diff options
context:
space:
mode:
authorUrsula Braun <ubraun@linux.ibm.com>2018-08-03 10:38:33 +0200
committerDavid S. Miller <davem@davemloft.net>2018-08-04 22:09:33 +0200
commit5607016cd1bbec538050b495669c3c8c5a2cee80 (patch)
tree36ebe535d0f05bb706d29702244e16e89671584b /net/smc
parentl2tp: fix missing refcount drop in pppol2tp_tunnel_ioctl() (diff)
downloadlinux-5607016cd1bbec538050b495669c3c8c5a2cee80.tar.xz
linux-5607016cd1bbec538050b495669c3c8c5a2cee80.zip
net/smc: no cursor update send in state SMC_INIT
If a writer blocked condition is received without data, the current consumer cursor is immediately sent. Servers could already receive this condition in state SMC_INIT without finished tx-setup. This patch avoids sending a consumer cursor update in this case. Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc')
-rw-r--r--net/smc/smc_cdc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/smc/smc_cdc.c b/net/smc/smc_cdc.c
index a7e8d63fc8ae..9bde1e4ca288 100644
--- a/net/smc/smc_cdc.c
+++ b/net/smc/smc_cdc.c
@@ -233,7 +233,8 @@ static void smc_cdc_msg_recv_action(struct smc_sock *smc,
/* force immediate tx of current consumer cursor, but
* under send_lock to guarantee arrival in seqno-order
*/
- smc_tx_sndbuf_nonempty(conn);
+ if (smc->sk.sk_state != SMC_INIT)
+ smc_tx_sndbuf_nonempty(conn);
}
}