]> Pileus Git - ~andy/linux/blobdiff - drivers/infiniband/ulp/isert/ib_isert.h
Merge tag 'staging-3.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[~andy/linux] / drivers / infiniband / ulp / isert / ib_isert.h
index 631f2090f0b8cfde2db02d17c9162d3e97558298..f6ae7f5dd4082768f3b6f0dfb36c1d45506b5eb6 100644 (file)
@@ -6,6 +6,7 @@
 
 #define ISERT_RDMA_LISTEN_BACKLOG      10
 #define ISCSI_ISER_SG_TABLESIZE                256
+#define ISER_FASTREG_LI_WRID           0xffffffffffffffffULL
 
 enum isert_desc_type {
        ISCSI_TX_CONTROL,
@@ -43,6 +44,9 @@ struct iser_tx_desc {
        struct ib_sge   tx_sg[2];
        int             num_sge;
        struct isert_cmd *isert_cmd;
+       struct llist_node *comp_llnode_batch;
+       struct llist_node comp_llnode;
+       bool            llnode_active;
        struct ib_send_wr send_wr;
 } __packed;
 
@@ -114,13 +118,16 @@ struct isert_conn {
        struct isert_device     *conn_device;
        struct work_struct      conn_logout_work;
        struct mutex            conn_mutex;
-       wait_queue_head_t       conn_wait;
-       wait_queue_head_t       conn_wait_comp_err;
+       struct completion       conn_wait;
+       struct completion       conn_wait_comp_err;
        struct kref             conn_kref;
-       struct list_head        conn_frwr_pool;
-       int                     conn_frwr_pool_size;
-       /* lock to protect frwr_pool */
+       struct list_head        conn_fr_pool;
+       int                     conn_fr_pool_size;
+       /* lock to protect fastreg pool */
        spinlock_t              conn_lock;
+#define ISERT_COMP_BATCH_COUNT 8
+       int                     conn_comp_batch;
+       struct llist_head       conn_comp_llist;
 };
 
 #define ISERT_MAX_CQ 64
@@ -133,13 +140,11 @@ struct isert_cq_desc {
 };
 
 struct isert_device {
-       int                     use_frwr;
+       int                     use_fastreg;
        int                     cqs_used;
        int                     refcount;
        int                     cq_active_qps[ISERT_MAX_CQ];
        struct ib_device        *ib_device;
-       struct ib_pd            *dev_pd;
-       struct ib_mr            *dev_mr;
        struct ib_cq            *dev_rx_cq[ISERT_MAX_CQ];
        struct ib_cq            *dev_tx_cq[ISERT_MAX_CQ];
        struct isert_cq_desc    *cq_desc;