OSDN Git Service

net/smc: use termination worker under send_lock
authorKarsten Graul <kgraul@linux.ibm.com>
Mon, 17 Feb 2020 15:24:51 +0000 (16:24 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Feb 2020 22:50:24 +0000 (14:50 -0800)
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>
net/smc/smc_tx.c

index 0d42e77..9f1ade8 100644 (file)
@@ -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;
 }