aboutsummaryrefslogtreecommitdiffstats
path: root/net/smc/smc_tx.c
diff options
context:
space:
mode:
authorKarsten Graul <kgraul@linux.ibm.com>2020-02-17 16:24:51 +0100
committerDavid S. Miller <davem@davemloft.net>2020-02-17 14:50:24 -0800
commit354ea2baa3936fcbfcb7ddf4ca3b6905389d4b25 (patch)
tree05e1d2be4e1eba96ba8c419ce381854e77e3af69 /net/smc/smc_tx.c
parentnet/smc: improve smc_lgr_cleanup() (diff)
downloadlinux-dev-354ea2baa3936fcbfcb7ddf4ca3b6905389d4b25.tar.xz
linux-dev-354ea2baa3936fcbfcb7ddf4ca3b6905389d4b25.zip
net/smc: use termination worker under send_lock
smc_tx_rdma_write() is called under the send_lock and should not call smc_lgr_terminate() directly. Call smc_lgr_terminate_sched() instead which schedules a worker. Signed-off-by: Karsten Graul <kgraul@linux.ibm.com> Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc/smc_tx.c')
-rw-r--r--net/smc/smc_tx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/smc/smc_tx.c b/net/smc/smc_tx.c
index 0d42e7716b91..9f1ade86d70e 100644
--- a/net/smc/smc_tx.c
+++ b/net/smc/smc_tx.c
@@ -284,7 +284,7 @@ static int smc_tx_rdma_write(struct smc_connection *conn, int peer_rmbe_offset,
rdma_wr->rkey = lgr->rtokens[conn->rtoken_idx][SMC_SINGLE_LINK].rkey;
rc = ib_post_send(link->roce_qp, &rdma_wr->wr, NULL);
if (rc)
- smc_lgr_terminate(lgr, true);
+ smc_lgr_terminate_sched(lgr);
return rc;
}