Lines Matching refs:rds_ibdev

48 	struct rds_ib_device *rds_ibdev;  in rds_ib_get_device()  local
52 list_for_each_entry_rcu(rds_ibdev, &rds_ib_devices, list) { in rds_ib_get_device()
53 list_for_each_entry_rcu(i_ipaddr, &rds_ibdev->ipaddr_list, list) { in rds_ib_get_device()
55 refcount_inc(&rds_ibdev->refcount); in rds_ib_get_device()
57 return rds_ibdev; in rds_ib_get_device()
66 static int rds_ib_add_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr) in rds_ib_add_ipaddr() argument
76 spin_lock_irq(&rds_ibdev->spinlock); in rds_ib_add_ipaddr()
77 list_add_tail_rcu(&i_ipaddr->list, &rds_ibdev->ipaddr_list); in rds_ib_add_ipaddr()
78 spin_unlock_irq(&rds_ibdev->spinlock); in rds_ib_add_ipaddr()
83 static void rds_ib_remove_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr) in rds_ib_remove_ipaddr() argument
89 spin_lock_irq(&rds_ibdev->spinlock); in rds_ib_remove_ipaddr()
90 list_for_each_entry_rcu(i_ipaddr, &rds_ibdev->ipaddr_list, list) { in rds_ib_remove_ipaddr()
97 spin_unlock_irq(&rds_ibdev->spinlock); in rds_ib_remove_ipaddr()
103 int rds_ib_update_ipaddr(struct rds_ib_device *rds_ibdev, in rds_ib_update_ipaddr() argument
110 return rds_ib_add_ipaddr(rds_ibdev, ipaddr->s6_addr32[3]); in rds_ib_update_ipaddr()
112 if (rds_ibdev_old != rds_ibdev) { in rds_ib_update_ipaddr()
115 return rds_ib_add_ipaddr(rds_ibdev, ipaddr->s6_addr32[3]); in rds_ib_update_ipaddr()
122 void rds_ib_add_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn) in rds_ib_add_conn() argument
132 spin_lock(&rds_ibdev->spinlock); in rds_ib_add_conn()
133 list_add_tail(&ic->ib_node, &rds_ibdev->conn_list); in rds_ib_add_conn()
134 spin_unlock(&rds_ibdev->spinlock); in rds_ib_add_conn()
137 ic->rds_ibdev = rds_ibdev; in rds_ib_add_conn()
138 refcount_inc(&rds_ibdev->refcount); in rds_ib_add_conn()
141 void rds_ib_remove_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn) in rds_ib_remove_conn() argument
148 spin_lock_irq(&rds_ibdev->spinlock); in rds_ib_remove_conn()
151 spin_unlock_irq(&rds_ibdev->spinlock); in rds_ib_remove_conn()
157 ic->rds_ibdev = NULL; in rds_ib_remove_conn()
158 rds_ib_dev_put(rds_ibdev); in rds_ib_remove_conn()
175 void rds_ib_get_mr_info(struct rds_ib_device *rds_ibdev, struct rds_info_rdma_connection *iinfo) in rds_ib_get_mr_info() argument
177 struct rds_ib_mr_pool *pool_1m = rds_ibdev->mr_1m_pool; in rds_ib_get_mr_info()
184 void rds6_ib_get_mr_info(struct rds_ib_device *rds_ibdev, in rds6_ib_get_mr_info() argument
187 struct rds_ib_mr_pool *pool_1m = rds_ibdev->mr_1m_pool; in rds6_ib_get_mr_info()
232 struct rds_ib_device *rds_ibdev = ibmr->device; in rds_ib_sync_mr() local
236 ib_dma_sync_sg_for_cpu(rds_ibdev->dev, ibmr->sg, in rds_ib_sync_mr()
240 ib_dma_sync_sg_for_device(rds_ibdev->dev, ibmr->sg, in rds_ib_sync_mr()
248 struct rds_ib_device *rds_ibdev = ibmr->device; in __rds_ib_teardown_mr() local
251 ib_dma_unmap_sg(rds_ibdev->dev, in __rds_ib_teardown_mr()
503 struct rds_ib_device *rds_ibdev = ibmr->device; in rds_ib_free_mr() local
508 if (rds_ibdev->use_fastreg) in rds_ib_free_mr()
533 rds_ib_dev_put(rds_ibdev); in rds_ib_free_mr()
538 struct rds_ib_device *rds_ibdev; in rds_ib_flush_mrs() local
541 list_for_each_entry(rds_ibdev, &rds_ib_devices, list) { in rds_ib_flush_mrs()
542 if (rds_ibdev->mr_8k_pool) in rds_ib_flush_mrs()
543 rds_ib_flush_mr_pool(rds_ibdev->mr_8k_pool, 0, NULL); in rds_ib_flush_mrs()
545 if (rds_ibdev->mr_1m_pool) in rds_ib_flush_mrs()
546 rds_ib_flush_mr_pool(rds_ibdev->mr_1m_pool, 0, NULL); in rds_ib_flush_mrs()
555 struct rds_ib_device *rds_ibdev; in rds_ib_get_mr() local
560 rds_ibdev = rds_ib_get_device(rs->rs_bound_addr.s6_addr32[3]); in rds_ib_get_mr()
561 if (!rds_ibdev) { in rds_ib_get_mr()
569 if (!rds_ibdev->mr_8k_pool || !rds_ibdev->mr_1m_pool) { in rds_ib_get_mr()
574 if (rds_ibdev->use_fastreg) in rds_ib_get_mr()
575 ibmr = rds_ib_reg_frmr(rds_ibdev, ic, sg, nents, key_ret); in rds_ib_get_mr()
577 ibmr = rds_ib_reg_fmr(rds_ibdev, sg, nents, key_ret); in rds_ib_get_mr()
586 if (rds_ibdev) in rds_ib_get_mr()
587 rds_ib_dev_put(rds_ibdev); in rds_ib_get_mr()
601 struct rds_ib_mr_pool *rds_ib_create_mr_pool(struct rds_ib_device *rds_ibdev, in rds_ib_create_mr_pool() argument
621 pool->max_items = rds_ibdev->max_1m_mrs; in rds_ib_create_mr_pool()
625 pool->max_items = rds_ibdev->max_8k_mrs; in rds_ib_create_mr_pool()
629 pool->fmr_attr.max_maps = rds_ibdev->fmr_max_remaps; in rds_ib_create_mr_pool()
631 pool->max_items_soft = rds_ibdev->max_mrs * 3 / 4; in rds_ib_create_mr_pool()
632 pool->use_fastreg = rds_ibdev->use_fastreg; in rds_ib_create_mr_pool()