Lines Matching defs:rds_ibdev

92 	struct rds_ib_device *rds_ibdev;
96 list_for_each_entry_rcu(rds_ibdev, &rds_ib_devices, list) {
97 list_for_each_entry_rcu(i_ipaddr, &rds_ibdev->ipaddr_list, list) {
99 atomic_inc(&rds_ibdev->refcount);
101 return rds_ibdev;
110 static int rds_ib_add_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
120 spin_lock_irq(&rds_ibdev->spinlock);
121 list_add_tail_rcu(&i_ipaddr->list, &rds_ibdev->ipaddr_list);
122 spin_unlock_irq(&rds_ibdev->spinlock);
127 static void rds_ib_remove_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
133 spin_lock_irq(&rds_ibdev->spinlock);
134 list_for_each_entry_rcu(i_ipaddr, &rds_ibdev->ipaddr_list, list) {
141 spin_unlock_irq(&rds_ibdev->spinlock);
149 int rds_ib_update_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
159 return rds_ib_add_ipaddr(rds_ibdev, ipaddr);
162 void rds_ib_add_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
172 spin_lock(&rds_ibdev->spinlock);
173 list_add_tail(&ic->ib_node, &rds_ibdev->conn_list);
174 spin_unlock(&rds_ibdev->spinlock);
177 ic->rds_ibdev = rds_ibdev;
178 atomic_inc(&rds_ibdev->refcount);
181 void rds_ib_remove_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
188 spin_lock_irq(&rds_ibdev->spinlock);
191 spin_unlock_irq(&rds_ibdev->spinlock);
197 ic->rds_ibdev = NULL;
198 rds_ib_dev_put(rds_ibdev);
215 struct rds_ib_mr_pool *rds_ib_create_mr_pool(struct rds_ib_device *rds_ibdev)
231 pool->fmr_attr.max_maps = rds_ibdev->fmr_max_remaps;
233 pool->max_free_pinned = rds_ibdev->max_fmrs * fmr_message_size / 4;
240 pool->max_items_soft = rds_ibdev->max_fmrs * 3 / 4;
241 pool->max_items = rds_ibdev->max_fmrs;
246 void rds_ib_get_mr_info(struct rds_ib_device *rds_ibdev, struct rds_info_rdma_connection *iinfo)
248 struct rds_ib_mr_pool *pool = rds_ibdev->mr_pool;
293 static struct rds_ib_mr *rds_ib_alloc_fmr(struct rds_ib_device *rds_ibdev)
295 struct rds_ib_mr_pool *pool = rds_ibdev->mr_pool;
333 ibmr = kzalloc_node(sizeof(*ibmr), GFP_KERNEL, rdsibdev_to_node(rds_ibdev));
341 ibmr->fmr = ib_alloc_fmr(rds_ibdev->pd,
367 static int rds_ib_map_fmr(struct rds_ib_device *rds_ibdev, struct rds_ib_mr *ibmr,
370 struct ib_device *dev = rds_ibdev->dev;
414 rdsibdev_to_node(rds_ibdev));
454 struct rds_ib_device *rds_ibdev = ibmr->device;
458 ib_dma_sync_sg_for_cpu(rds_ibdev->dev, ibmr->sg,
462 ib_dma_sync_sg_for_device(rds_ibdev->dev, ibmr->sg,
470 struct rds_ib_device *rds_ibdev = ibmr->device;
473 ib_dma_unmap_sg(rds_ibdev->dev,
505 struct rds_ib_device *rds_ibdev = ibmr->device;
506 struct rds_ib_mr_pool *pool = rds_ibdev->mr_pool;
697 struct rds_ib_device *rds_ibdev = ibmr->device;
698 struct rds_ib_mr_pool *pool = rds_ibdev->mr_pool;
726 rds_ib_dev_put(rds_ibdev);
731 struct rds_ib_device *rds_ibdev;
734 list_for_each_entry(rds_ibdev, &rds_ib_devices, list) {
735 struct rds_ib_mr_pool *pool = rds_ibdev->mr_pool;
746 struct rds_ib_device *rds_ibdev;
750 rds_ibdev = rds_ib_get_device(rs->rs_bound_addr);
751 if (!rds_ibdev) {
756 if (!rds_ibdev->mr_pool) {
761 ibmr = rds_ib_alloc_fmr(rds_ibdev);
765 ret = rds_ib_map_fmr(rds_ibdev, ibmr, sg, nents);
771 ibmr->device = rds_ibdev;
772 rds_ibdev = NULL;
780 if (rds_ibdev)
781 rds_ib_dev_put(rds_ibdev);