]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/rds/ib.h
Merge tag 'drm-fixes-2019-12-13' of git://anongit.freedesktop.org/drm/drm
[linux.git] / net / rds / ib.h
index f2b558e8b5eaf738cd6b1a46dc98c20205d5ab7b..6e6f24753998cde4d2d63716804c65a30a0183ab 100644 (file)
@@ -165,8 +165,8 @@ struct rds_ib_connection {
        /* tx */
        struct rds_ib_work_ring i_send_ring;
        struct rm_data_op       *i_data_op;
-       struct rds_header       *i_send_hdrs;
-       dma_addr_t              i_send_hdrs_dma;
+       struct rds_header       **i_send_hdrs;
+       dma_addr_t              *i_send_hdrs_dma;
        struct rds_ib_send_work *i_sends;
        atomic_t                i_signaled_sends;
 
@@ -175,8 +175,8 @@ struct rds_ib_connection {
        struct rds_ib_work_ring i_recv_ring;
        struct rds_ib_incoming  *i_ibinc;
        u32                     i_recv_data_rem;
-       struct rds_header       *i_recv_hdrs;
-       dma_addr_t              i_recv_hdrs_dma;
+       struct rds_header       **i_recv_hdrs;
+       dma_addr_t              *i_recv_hdrs_dma;
        struct rds_ib_recv_work *i_recvs;
        u64                     i_ack_recv;     /* last ACK received */
        struct rds_ib_refill_cache i_cache_incs;
@@ -246,6 +246,7 @@ struct rds_ib_device {
        struct list_head        conn_list;
        struct ib_device        *dev;
        struct ib_pd            *pd;
+       struct dma_pool         *rid_hdrs_pool; /* RDS headers DMA pool */
        bool                    use_fastreg;
 
        unsigned int            max_mrs;
@@ -381,7 +382,11 @@ int rds_ib_cm_handle_connect(struct rdma_cm_id *cm_id,
 int rds_ib_cm_initiate_connect(struct rdma_cm_id *cm_id, bool isv6);
 void rds_ib_cm_connect_complete(struct rds_connection *conn,
                                struct rdma_cm_event *event);
-
+struct rds_header **rds_dma_hdrs_alloc(struct ib_device *ibdev,
+                                      struct dma_pool *pool,
+                                      dma_addr_t **dma_addrs, u32 num_hdrs);
+void rds_dma_hdrs_free(struct dma_pool *pool, struct rds_header **hdrs,
+                      dma_addr_t *dma_addrs, u32 num_hdrs);
 
 #define rds_ib_conn_error(conn, fmt...) \
        __rds_ib_conn_error(conn, KERN_WARNING "RDS/IB: " fmt)