diff options
author | Ursula Braun <ubraun@linux.ibm.com> | 2019-11-14 13:02:46 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-11-15 12:28:28 -0800 |
commit | 6a37ad3da5d64a632d03a8dc272c65e706cc7160 (patch) | |
tree | 2b921e75898ccb1d6b84a8e41852eb76367ab24c /net/smc/smc_ib.c | |
parent | 2c1d3e50302fe3e0bd6873323877c2ad19db3f49 (diff) |
net/smc: wait for tx completions before link freeing
Make sure all pending work requests are completed before freeing
a link.
Dismiss tx pending slots already when terminating a link group to
exploit termination shortcut in tx completion queue handler.
And kill the completion queue tasklets after destroy of the
completion queues, otherwise there is a time window for another
tasklet schedule of an already killed tasklet.
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>
Diffstat (limited to 'net/smc/smc_ib.c')
-rw-r--r-- | net/smc/smc_ib.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/smc/smc_ib.c b/net/smc/smc_ib.c index af05daeb0538..c15dcd08dc74 100644 --- a/net/smc/smc_ib.c +++ b/net/smc/smc_ib.c @@ -520,9 +520,9 @@ static void smc_ib_cleanup_per_ibdev(struct smc_ib_device *smcibdev) if (!smcibdev->initialized) return; smcibdev->initialized = 0; - smc_wr_remove_dev(smcibdev); ib_destroy_cq(smcibdev->roce_cq_recv); ib_destroy_cq(smcibdev->roce_cq_send); + smc_wr_remove_dev(smcibdev); } static struct ib_client smc_ib_client; |