RDMA/rtrs: Use new shared CQ mechanism
[linux-2.6-microblaze.git] / drivers / infiniband / ulp / rtrs / rtrs.c
index d13aff0..5822cb0 100644 (file)
@@ -218,14 +218,14 @@ static int create_cq(struct rtrs_con *con, int cq_vector, u16 cq_size,
        struct rdma_cm_id *cm_id = con->cm_id;
        struct ib_cq *cq;
 
-       cq = ib_alloc_cq(cm_id->device, con, cq_size,
-                        cq_vector, poll_ctx);
+       cq = ib_cq_pool_get(cm_id->device, cq_size, cq_vector, poll_ctx);
        if (IS_ERR(cq)) {
                rtrs_err(con->sess, "Creating completion queue failed, errno: %ld\n",
                          PTR_ERR(cq));
                return PTR_ERR(cq);
        }
        con->cq = cq;
+       con->cq_size = cq_size;
 
        return 0;
 }
@@ -273,7 +273,7 @@ int rtrs_cq_qp_create(struct rtrs_sess *sess, struct rtrs_con *con,
        err = create_qp(con, sess->dev->ib_pd, max_send_wr, max_recv_wr,
                        max_send_sge);
        if (err) {
-               ib_free_cq(con->cq);
+               ib_cq_pool_put(con->cq, con->cq_size);
                con->cq = NULL;
                return err;
        }
@@ -290,7 +290,7 @@ void rtrs_cq_qp_destroy(struct rtrs_con *con)
                con->qp = NULL;
        }
        if (con->cq) {
-               ib_free_cq(con->cq);
+               ib_cq_pool_put(con->cq, con->cq_size);
                con->cq = NULL;
        }
 }