IB/iser: Protect completion context active_qps update
authorMax Gurtovoy <maxg@mellanox.com>
Wed, 1 Feb 2017 23:55:18 +0000 (01:55 +0200)
committerDoug Ledford <dledford@redhat.com>
Sun, 19 Feb 2017 14:18:31 +0000 (09:18 -0500)
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>
drivers/infiniband/ulp/iser/iser_verbs.c

index 6a9d1cb548ee8f7f34cfe1a1f9ad7c54de133271..30b622f2ab7382ca04a8affbd26dfd01ff98716c 100644 (file)
@@ -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;
        }