Lines Matching refs:sriov
146 struct rb_root *sl_id_map = &to_mdev(ibdev)->sriov.sl_id_map; in id_map_find_by_sl_id()
173 struct mlx4_ib_sriov *sriov = &dev->sriov; in id_map_ent_timeout() local
174 struct rb_root *sl_id_map = &sriov->sl_id_map; in id_map_ent_timeout()
177 spin_lock(&sriov->id_map_lock); in id_map_ent_timeout()
178 db_ent = (struct id_map_entry *)idr_find(&sriov->pv_id_table, pv_id); in id_map_ent_timeout()
184 idr_remove(&sriov->pv_id_table, pv_id); in id_map_ent_timeout()
188 spin_unlock(&sriov->id_map_lock); in id_map_ent_timeout()
194 struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov; in id_map_find_del() local
195 struct rb_root *sl_id_map = &sriov->sl_id_map; in id_map_find_del()
198 spin_lock(&sriov->id_map_lock); in id_map_find_del()
199 ent = (struct id_map_entry *)idr_find(&sriov->pv_id_table, pv_cm_id); in id_map_find_del()
205 idr_remove(&sriov->pv_id_table, pv_cm_id); in id_map_find_del()
207 spin_unlock(&sriov->id_map_lock); in id_map_find_del()
212 struct rb_root *sl_id_map = &to_mdev(ibdev)->sriov.sl_id_map; in sl_id_map_add()
247 struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov; in id_map_alloc() local
260 spin_lock(&to_mdev(ibdev)->sriov.id_map_lock); in id_map_alloc()
262 ret = idr_alloc_cyclic(&sriov->pv_id_table, ent, 0, 0, GFP_NOWAIT); in id_map_alloc()
266 list_add_tail(&ent->list, &sriov->cm_list); in id_map_alloc()
269 spin_unlock(&sriov->id_map_lock); in id_map_alloc()
285 struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov; in id_map_get() local
287 spin_lock(&sriov->id_map_lock); in id_map_get()
293 ent = (struct id_map_entry *)idr_find(&sriov->pv_id_table, *pv_cm_id); in id_map_get()
294 spin_unlock(&sriov->id_map_lock); in id_map_get()
301 struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov; in schedule_delayed() local
304 spin_lock(&sriov->id_map_lock); in schedule_delayed()
305 spin_lock_irqsave(&sriov->going_down_lock, flags); in schedule_delayed()
307 if (!sriov->is_going_down) { in schedule_delayed()
311 spin_unlock_irqrestore(&sriov->going_down_lock, flags); in schedule_delayed()
312 spin_unlock(&sriov->id_map_lock); in schedule_delayed()
407 spin_lock_init(&dev->sriov.id_map_lock); in mlx4_ib_cm_paravirt_init()
408 INIT_LIST_HEAD(&dev->sriov.cm_list); in mlx4_ib_cm_paravirt_init()
409 dev->sriov.sl_id_map = RB_ROOT; in mlx4_ib_cm_paravirt_init()
410 idr_init(&dev->sriov.pv_id_table); in mlx4_ib_cm_paravirt_init()
417 struct mlx4_ib_sriov *sriov = &dev->sriov; in mlx4_ib_cm_paravirt_clean() local
418 struct rb_root *sl_id_map = &sriov->sl_id_map; in mlx4_ib_cm_paravirt_clean()
425 spin_lock(&sriov->id_map_lock); in mlx4_ib_cm_paravirt_clean()
426 list_for_each_entry_safe(map, tmp_map, &dev->sriov.cm_list, list) { in mlx4_ib_cm_paravirt_clean()
433 spin_unlock(&sriov->id_map_lock); in mlx4_ib_cm_paravirt_clean()
439 spin_lock(&sriov->id_map_lock); in mlx4_ib_cm_paravirt_clean()
447 idr_remove(&sriov->pv_id_table, (int) ent->pv_cm_id); in mlx4_ib_cm_paravirt_clean()
449 list_splice_init(&dev->sriov.cm_list, &lh); in mlx4_ib_cm_paravirt_clean()
463 idr_remove(&sriov->pv_id_table, (int) map->pv_cm_id); in mlx4_ib_cm_paravirt_clean()
467 list_for_each_entry_safe(map, tmp_map, &dev->sriov.cm_list, list) { in mlx4_ib_cm_paravirt_clean()
473 spin_unlock(&sriov->id_map_lock); in mlx4_ib_cm_paravirt_clean()