Whamcloud - gitweb
LU-6215 o2iblnd: handle new struct ib_cq_init_attr
[fs/lustre-release.git] / lnet / klnds / o2iblnd / o2iblnd.c
index 6986f2d..3adff1f 100644 (file)
@@ -718,6 +718,9 @@ kiblnd_create_conn(kib_peer_t *peer, struct rdma_cm_id *cmid,
        kib_dev_t              *dev;
        struct ib_qp_init_attr *init_qp_attr;
        struct kib_sched_info   *sched;
+#ifdef HAVE_IB_CQ_INIT_ATTR
+       struct ib_cq_init_attr  cq_attr = {};
+#endif
        kib_conn_t              *conn;
        struct ib_cq            *cq;
        unsigned long           flags;
@@ -813,10 +816,18 @@ kiblnd_create_conn(kib_peer_t *peer, struct rdma_cm_id *cmid,
 
        kiblnd_map_rx_descs(conn);
 
+#ifdef HAVE_IB_CQ_INIT_ATTR
+       cq_attr.cqe = IBLND_CQ_ENTRIES(version);
+       cq_attr.comp_vector = kiblnd_get_completion_vector(conn, cpt);
+       cq = ib_create_cq(cmid->device,
+                         kiblnd_cq_completion, kiblnd_cq_event, conn,
+                         &cq_attr);
+#else
        cq = ib_create_cq(cmid->device,
                          kiblnd_cq_completion, kiblnd_cq_event, conn,
                          IBLND_CQ_ENTRIES(version),
                          kiblnd_get_completion_vector(conn, cpt));
+#endif
         if (IS_ERR(cq)) {
                 CERROR("Can't create CQ: %ld, cqe: %d\n",
                        PTR_ERR(cq), IBLND_CQ_ENTRIES(version));