From ac0c641159dfd9dfcf3f7485851b8d8170caebbb Mon Sep 17 00:00:00 2001 From: Ursula Braun Date: Tue, 15 May 2018 17:04:54 +0200 Subject: [PATCH] net/smc: no tx work trigger for fallback sockets If TCP_NODELAY is set or TCP_CORK is reset, setsockopt triggers the tx worker. This does not make sense, if the SMC socket switched to the TCP fallback when the connection is created. This patch adds the additional check for the fallback case. Signed-off-by: Ursula Braun Signed-off-by: David S. Miller --- net/smc/af_smc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c index 17688a02035b5..83403be46a4a9 100644 --- a/net/smc/af_smc.c +++ b/net/smc/af_smc.c @@ -1353,14 +1353,14 @@ static int smc_setsockopt(struct socket *sock, int level, int optname, break; case TCP_NODELAY: if (sk->sk_state != SMC_INIT && sk->sk_state != SMC_LISTEN) { - if (val) + if (val && !smc->use_fallback) mod_delayed_work(system_wq, &smc->conn.tx_work, 0); } break; case TCP_CORK: if (sk->sk_state != SMC_INIT && sk->sk_state != SMC_LISTEN) { - if (!val) + if (!val && !smc->use_fallback) mod_delayed_work(system_wq, &smc->conn.tx_work, 0); } -- 2.39.5