Lines Matching refs:rds_ibdev
52 struct rds_ib_device *rds_ibdev;
56 list_for_each_entry_rcu(rds_ibdev, &rds_ib_devices, list) {
57 list_for_each_entry_rcu(i_ipaddr, &rds_ibdev->ipaddr_list, list) {
59 refcount_inc(&rds_ibdev->refcount);
61 return rds_ibdev;
70 static int rds_ib_add_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
80 spin_lock_irq(&rds_ibdev->spinlock);
81 list_add_tail_rcu(&i_ipaddr->list, &rds_ibdev->ipaddr_list);
82 spin_unlock_irq(&rds_ibdev->spinlock);
87 static void rds_ib_remove_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
93 spin_lock_irq(&rds_ibdev->spinlock);
94 list_for_each_entry_rcu(i_ipaddr, &rds_ibdev->ipaddr_list, list) {
101 spin_unlock_irq(&rds_ibdev->spinlock);
107 int rds_ib_update_ipaddr(struct rds_ib_device *rds_ibdev,
114 return rds_ib_add_ipaddr(rds_ibdev, ipaddr->s6_addr32[3]);
116 if (rds_ibdev_old != rds_ibdev) {
119 return rds_ib_add_ipaddr(rds_ibdev, ipaddr->s6_addr32[3]);
126 void rds_ib_add_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
136 spin_lock(&rds_ibdev->spinlock);
137 list_add_tail(&ic->ib_node, &rds_ibdev->conn_list);
138 spin_unlock(&rds_ibdev->spinlock);
141 ic->rds_ibdev = rds_ibdev;
142 refcount_inc(&rds_ibdev->refcount);
145 void rds_ib_remove_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
152 spin_lock_irq(&rds_ibdev->spinlock);
155 spin_unlock_irq(&rds_ibdev->spinlock);
161 ic->rds_ibdev = NULL;
162 rds_ib_dev_put(rds_ibdev);
179 void rds_ib_get_mr_info(struct rds_ib_device *rds_ibdev, struct rds_info_rdma_connection *iinfo)
181 struct rds_ib_mr_pool *pool_1m = rds_ibdev->mr_1m_pool;
188 void rds6_ib_get_mr_info(struct rds_ib_device *rds_ibdev,
191 struct rds_ib_mr_pool *pool_1m = rds_ibdev->mr_1m_pool;
221 struct rds_ib_device *rds_ibdev = ibmr->device;
228 ib_dma_sync_sg_for_cpu(rds_ibdev->dev, ibmr->sg,
232 ib_dma_sync_sg_for_device(rds_ibdev->dev, ibmr->sg,
240 struct rds_ib_device *rds_ibdev = ibmr->device;
243 ib_dma_unmap_sg(rds_ibdev->dev,
488 struct rds_ib_device *rds_ibdev = ibmr->device;
525 rds_ib_dev_put(rds_ibdev);
530 struct rds_ib_device *rds_ibdev;
533 list_for_each_entry(rds_ibdev, &rds_ib_devices, list) {
534 if (rds_ibdev->mr_8k_pool)
535 rds_ib_flush_mr_pool(rds_ibdev->mr_8k_pool, 0, NULL);
537 if (rds_ibdev->mr_1m_pool)
538 rds_ib_flush_mr_pool(rds_ibdev->mr_1m_pool, 0, NULL);
555 struct rds_ib_device *rds_ibdev;
560 rds_ibdev = rds_ib_get_device(rs->rs_bound_addr.s6_addr32[3]);
561 if (!rds_ibdev) {
575 if (!rds_ibdev->odp_capable) {
580 ib_mr = ib_reg_user_mr(rds_ibdev->pd, start, length, virt_addr,
605 ib_advise_mr(rds_ibdev->pd,
614 if (!rds_ibdev->mr_8k_pool || !rds_ibdev->mr_1m_pool) {
619 ibmr = rds_ib_reg_frmr(rds_ibdev, ic, sg, nents, key_ret);
628 if (rds_ibdev)
629 rds_ib_dev_put(rds_ibdev);
643 struct rds_ib_mr_pool *rds_ib_create_mr_pool(struct rds_ib_device *rds_ibdev,
664 pool->max_items = rds_ibdev->max_1m_mrs;
668 pool->max_items = rds_ibdev->max_8k_mrs;
672 pool->max_items_soft = rds_ibdev->max_mrs * 3 / 4;