Lines Matching refs:rdi
62 void rvt_driver_mcast_init(struct rvt_dev_info *rdi) in rvt_driver_mcast_init() argument
68 spin_lock_init(&rdi->n_mcast_grps_lock); in rvt_driver_mcast_init()
193 static int rvt_mcast_add(struct rvt_dev_info *rdi, struct rvt_ibport *ibp, in rvt_mcast_add() argument
234 rdi->dparms.props.max_mcast_qp_attach) { in rvt_mcast_add()
246 spin_lock(&rdi->n_mcast_grps_lock); in rvt_mcast_add()
247 if (rdi->n_mcast_grps_allocated == rdi->dparms.props.max_mcast_grp) { in rvt_mcast_add()
248 spin_unlock(&rdi->n_mcast_grps_lock); in rvt_mcast_add()
253 rdi->n_mcast_grps_allocated++; in rvt_mcast_add()
254 spin_unlock(&rdi->n_mcast_grps_lock); in rvt_mcast_add()
283 struct rvt_dev_info *rdi = ib_to_rvt(ibqp->device); in rvt_attach_mcast() local
284 struct rvt_ibport *ibp = rdi->ports[qp->port_num - 1]; in rvt_attach_mcast()
304 switch (rvt_mcast_add(rdi, ibp, mcast, mqp)) { in rvt_attach_mcast()
346 struct rvt_dev_info *rdi = ib_to_rvt(ibqp->device); in rvt_detach_mcast() local
347 struct rvt_ibport *ibp = rdi->ports[qp->port_num - 1]; in rvt_detach_mcast()
420 spin_lock_irq(&rdi->n_mcast_grps_lock); in rvt_detach_mcast()
421 rdi->n_mcast_grps_allocated--; in rvt_detach_mcast()
422 spin_unlock_irq(&rdi->n_mcast_grps_lock); in rvt_detach_mcast()
434 int rvt_mcast_tree_empty(struct rvt_dev_info *rdi) in rvt_mcast_tree_empty() argument
439 for (i = 0; i < rdi->dparms.nports; i++) in rvt_mcast_tree_empty()
440 if (rdi->ports[i]->mcast_tree.rb_node) in rvt_mcast_tree_empty()