Whamcloud - gitweb
LU-6215 lnet: split struct ib_send_wr
[fs/lustre-release.git] / lnet / klnds / o2iblnd / o2iblnd.h
index 56195b3..5fd1ffe 100644 (file)
@@ -103,9 +103,6 @@ typedef struct
        int              *kib_retry_count;
        int              *kib_rnr_retry_count;
        int              *kib_ib_mtu;           /* IB MTU */
-#if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM
-       struct ctl_table_header *kib_sysctl;  /* sysctl interface */
-#endif
        int              *kib_require_priv_port;/* accept only privileged ports */
        int              *kib_use_priv_port;    /* use privileged port for active connect */
        /* # threads on each CPT */
@@ -125,10 +122,17 @@ extern kib_tunables_t  kiblnd_tunables;
                                        IBLND_CREDIT_HIGHWATER_V1 : \
                                        t->lnd_peercredits_hiw)
 
-#ifdef HAVE_RDMA_CREATE_ID_4ARG
-#define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(cb, dev, ps, qpt)
+#ifdef HAVE_RDMA_CREATE_ID_5ARG
+# define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(current->nsproxy->net_ns, \
+                                                               cb, dev, \
+                                                               ps, qpt)
 #else
-#define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(cb, dev, ps)
+# ifdef HAVE_RDMA_CREATE_ID_4ARG
+#  define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(cb, dev, \
+                                                                ps, qpt)
+# else
+#  define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(cb, dev, ps)
+# endif
 #endif
 
 /* 2 OOB shall suffice for 1 keepalive and 1 returning credits */
@@ -306,12 +310,22 @@ typedef struct
        cfs_time_t              fps_next_retry;
 } kib_fmr_poolset_t;
 
+#ifndef HAVE_IB_RDMA_WR
+struct ib_rdma_wr {
+       struct ib_send_wr wr;
+};
+#endif
+
 struct kib_fast_reg_descriptor { /* For fast registration */
        struct list_head                 frd_list;
-       struct ib_send_wr                frd_inv_wr;
-       struct ib_send_wr                frd_fastreg_wr;
-       struct ib_mr                    *frd_mr;
+       struct ib_rdma_wr                frd_inv_wr;
+#ifdef HAVE_IB_MAP_MR_SG
+       struct ib_reg_wr                 frd_fastreg_wr;
+#else
+       struct ib_rdma_wr                frd_fastreg_wr;
        struct ib_fast_reg_page_list    *frd_frpl;
+#endif
+       struct ib_mr                    *frd_mr;
        bool                             frd_valid;
 };
 
@@ -602,7 +616,7 @@ typedef struct kib_tx                           /* transmit message */
        /* # send work items */
        int                     tx_nwrq;
        /* send work items... */
-       struct ib_send_wr       *tx_wrq;
+       struct ib_rdma_wr       *tx_wrq;
        /* ...and their memory */
        struct ib_sge           *tx_sge;
        /* rdma descriptor */
@@ -1147,13 +1161,13 @@ void kiblnd_unmap_rx_descs(kib_conn_t *conn);
 void kiblnd_pool_free_node(kib_pool_t *pool, struct list_head *node);
 struct list_head *kiblnd_pool_alloc_node(kib_poolset_t *ps);
 
-int  kiblnd_fmr_pool_map(kib_fmr_poolset_t *fps, __u64 *pages, int npages,
-                        __u32 nob, __u64 iov, bool is_rx, kib_fmr_t *fmr);
+int  kiblnd_fmr_pool_map(kib_fmr_poolset_t *fps, kib_tx_t *tx,
+                        kib_rdma_desc_t *rd, __u32 nob, __u64 iov,
+                        kib_fmr_t *fmr);
 void kiblnd_fmr_pool_unmap(kib_fmr_t *fmr, int status);
 
 int  kiblnd_tunables_setup(struct lnet_ni *ni);
 int  kiblnd_tunables_init(void);
-void kiblnd_tunables_fini(void);
 
 int  kiblnd_connd (void *arg);
 int  kiblnd_scheduler(void *arg);