Lines Matching refs:srq_table
45 struct mlx4_srq_table *srq_table = &mlx4_priv(dev)->srq_table; in mlx4_srq_event() local
48 spin_lock(&srq_table->lock); in mlx4_srq_event()
50 srq = radix_tree_lookup(&srq_table->tree, srqn & (dev->caps.num_srqs - 1)); in mlx4_srq_event()
54 spin_unlock(&srq_table->lock); in mlx4_srq_event()
98 struct mlx4_srq_table *srq_table = &mlx4_priv(dev)->srq_table; in __mlx4_srq_alloc_icm() local
102 *srqn = mlx4_bitmap_alloc(&srq_table->bitmap); in __mlx4_srq_alloc_icm()
106 err = mlx4_table_get(dev, &srq_table->table, *srqn, GFP_KERNEL); in __mlx4_srq_alloc_icm()
110 err = mlx4_table_get(dev, &srq_table->cmpt_table, *srqn, GFP_KERNEL); in __mlx4_srq_alloc_icm()
116 mlx4_table_put(dev, &srq_table->table, *srqn); in __mlx4_srq_alloc_icm()
119 mlx4_bitmap_free(&srq_table->bitmap, *srqn, MLX4_NO_RR); in __mlx4_srq_alloc_icm()
143 struct mlx4_srq_table *srq_table = &mlx4_priv(dev)->srq_table; in __mlx4_srq_free_icm() local
145 mlx4_table_put(dev, &srq_table->cmpt_table, srqn); in __mlx4_srq_free_icm()
146 mlx4_table_put(dev, &srq_table->table, srqn); in __mlx4_srq_free_icm()
147 mlx4_bitmap_free(&srq_table->bitmap, srqn, MLX4_NO_RR); in __mlx4_srq_free_icm()
168 struct mlx4_srq_table *srq_table = &mlx4_priv(dev)->srq_table; in mlx4_srq_alloc() local
178 spin_lock_irq(&srq_table->lock); in mlx4_srq_alloc()
179 err = radix_tree_insert(&srq_table->tree, srq->srqn, srq); in mlx4_srq_alloc()
180 spin_unlock_irq(&srq_table->lock); in mlx4_srq_alloc()
215 spin_lock_irq(&srq_table->lock); in mlx4_srq_alloc()
216 radix_tree_delete(&srq_table->tree, srq->srqn); in mlx4_srq_alloc()
217 spin_unlock_irq(&srq_table->lock); in mlx4_srq_alloc()
227 struct mlx4_srq_table *srq_table = &mlx4_priv(dev)->srq_table; in mlx4_srq_free() local
234 spin_lock_irq(&srq_table->lock); in mlx4_srq_free()
235 radix_tree_delete(&srq_table->tree, srq->srqn); in mlx4_srq_free()
236 spin_unlock_irq(&srq_table->lock); in mlx4_srq_free()
277 struct mlx4_srq_table *srq_table = &mlx4_priv(dev)->srq_table; in mlx4_init_srq_table() local
280 spin_lock_init(&srq_table->lock); in mlx4_init_srq_table()
281 INIT_RADIX_TREE(&srq_table->tree, GFP_ATOMIC); in mlx4_init_srq_table()
285 err = mlx4_bitmap_init(&srq_table->bitmap, dev->caps.num_srqs, in mlx4_init_srq_table()
297 mlx4_bitmap_cleanup(&mlx4_priv(dev)->srq_table.bitmap); in mlx4_cleanup_srq_table()
302 struct mlx4_srq_table *srq_table = &mlx4_priv(dev)->srq_table; in mlx4_srq_lookup() local
306 spin_lock_irqsave(&srq_table->lock, flags); in mlx4_srq_lookup()
307 srq = radix_tree_lookup(&srq_table->tree, in mlx4_srq_lookup()
309 spin_unlock_irqrestore(&srq_table->lock, flags); in mlx4_srq_lookup()