aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/ulp/iser
diff options
context:
space:
mode:
authorMax Gurtovoy <maxg@mellanox.com>2017-02-02 01:55:18 +0200
committerDoug Ledford <dledford@redhat.com>2017-02-19 09:18:31 -0500
commit32f8e839edebe3310dd077439ce0e9a96e0c2352 (patch)
tree7556ce243fc4d0c6091547a6476aaf0d5f3fb864 /drivers/infiniband/ulp/iser
parentiw_cxgb4: clean up send_connect() (diff)
downloadlinux-dev-32f8e839edebe3310dd077439ce0e9a96e0c2352.tar.xz
linux-dev-32f8e839edebe3310dd077439ce0e9a96e0c2352.zip
IB/iser: Protect completion context active_qps update
As iser connections can share completion contexts, we need to protect the active_qps update each time we set it. Signed-off-by: Max Gurtovoy <maxg@mellanox.com> Acked-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/ulp/iser')
-rw-r--r--drivers/infiniband/ulp/iser/iser_verbs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index 6a9d1cb548ee..30b622f2ab73 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -597,7 +597,9 @@ static void iser_free_ib_conn_res(struct iser_conn *iser_conn,
iser_conn, ib_conn->cma_id, ib_conn->qp);
if (ib_conn->qp != NULL) {
+ mutex_lock(&ig.connlist_mutex);
ib_conn->comp->active_qps--;
+ mutex_unlock(&ig.connlist_mutex);
rdma_destroy_qp(ib_conn->cma_id);
ib_conn->qp = NULL;
}