Lines Matching refs:rds_ibdev
48 struct rds_ib_device *rds_ibdev;
52 list_for_each_entry_rcu(rds_ibdev, &rds_ib_devices, list) {
53 list_for_each_entry_rcu(i_ipaddr, &rds_ibdev->ipaddr_list, list) {
55 refcount_inc(&rds_ibdev->refcount);
57 return rds_ibdev;
66 static int rds_ib_add_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
76 spin_lock_irq(&rds_ibdev->spinlock);
77 list_add_tail_rcu(&i_ipaddr->list, &rds_ibdev->ipaddr_list);
78 spin_unlock_irq(&rds_ibdev->spinlock);
83 static void rds_ib_remove_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
89 spin_lock_irq(&rds_ibdev->spinlock);
90 list_for_each_entry_rcu(i_ipaddr, &rds_ibdev->ipaddr_list, list) {
97 spin_unlock_irq(&rds_ibdev->spinlock);
103 int rds_ib_update_ipaddr(struct rds_ib_device *rds_ibdev,
110 return rds_ib_add_ipaddr(rds_ibdev, ipaddr->s6_addr32[3]);
112 if (rds_ibdev_old != rds_ibdev) {
115 return rds_ib_add_ipaddr(rds_ibdev, ipaddr->s6_addr32[3]);
122 void rds_ib_add_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
132 spin_lock(&rds_ibdev->spinlock);
133 list_add_tail(&ic->ib_node, &rds_ibdev->conn_list);
134 spin_unlock(&rds_ibdev->spinlock);
137 ic->rds_ibdev = rds_ibdev;
138 refcount_inc(&rds_ibdev->refcount);
141 void rds_ib_remove_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
148 spin_lock_irq(&rds_ibdev->spinlock);
151 spin_unlock_irq(&rds_ibdev->spinlock);
157 ic->rds_ibdev = NULL;
158 rds_ib_dev_put(rds_ibdev);
175 void rds_ib_get_mr_info(struct rds_ib_device *rds_ibdev, struct rds_info_rdma_connection *iinfo)
177 struct rds_ib_mr_pool *pool_1m = rds_ibdev->mr_1m_pool;
184 void rds6_ib_get_mr_info(struct rds_ib_device *rds_ibdev,
187 struct rds_ib_mr_pool *pool_1m = rds_ibdev->mr_1m_pool;
217 struct rds_ib_device *rds_ibdev = ibmr->device;
224 ib_dma_sync_sg_for_cpu(rds_ibdev->dev, ibmr->sg,
228 ib_dma_sync_sg_for_device(rds_ibdev->dev, ibmr->sg,
236 struct rds_ib_device *rds_ibdev = ibmr->device;
239 ib_dma_unmap_sg(rds_ibdev->dev,
484 struct rds_ib_device *rds_ibdev = ibmr->device;
521 rds_ib_dev_put(rds_ibdev);
526 struct rds_ib_device *rds_ibdev;
529 list_for_each_entry(rds_ibdev, &rds_ib_devices, list) {
530 if (rds_ibdev->mr_8k_pool)
531 rds_ib_flush_mr_pool(rds_ibdev->mr_8k_pool, 0, NULL);
533 if (rds_ibdev->mr_1m_pool)
534 rds_ib_flush_mr_pool(rds_ibdev->mr_1m_pool, 0, NULL);
551 struct rds_ib_device *rds_ibdev;
556 rds_ibdev = rds_ib_get_device(rs->rs_bound_addr.s6_addr32[3]);
557 if (!rds_ibdev) {
571 if (!rds_ibdev->odp_capable) {
576 ib_mr = ib_reg_user_mr(rds_ibdev->pd, start, length, virt_addr,
601 ib_advise_mr(rds_ibdev->pd,
615 if (!rds_ibdev->mr_8k_pool || !rds_ibdev->mr_1m_pool) {
620 ibmr = rds_ib_reg_frmr(rds_ibdev, ic, sg, nents, key_ret);
629 if (rds_ibdev)
630 rds_ib_dev_put(rds_ibdev);
644 struct rds_ib_mr_pool *rds_ib_create_mr_pool(struct rds_ib_device *rds_ibdev,
665 pool->max_items = rds_ibdev->max_1m_mrs;
669 pool->max_items = rds_ibdev->max_8k_mrs;
673 pool->max_items_soft = rds_ibdev->max_mrs * 3 / 4;