Lines Matching defs:srqn

43 void mlx4_srq_event(struct mlx4_dev *dev, u32 srqn, int event_type)
49 srq = radix_tree_lookup(&srq_table->tree, srqn & (dev->caps.num_srqs - 1));
54 mlx4_warn(dev, "Async event for bogus SRQ %08x\n", srqn);
93 int __mlx4_srq_alloc_icm(struct mlx4_dev *dev, int *srqn)
99 *srqn = mlx4_bitmap_alloc(&srq_table->bitmap);
100 if (*srqn == -1)
103 err = mlx4_table_get(dev, &srq_table->table, *srqn);
107 err = mlx4_table_get(dev, &srq_table->cmpt_table, *srqn);
113 mlx4_table_put(dev, &srq_table->table, *srqn);
116 mlx4_bitmap_free(&srq_table->bitmap, *srqn, MLX4_NO_RR);
120 static int mlx4_srq_alloc_icm(struct mlx4_dev *dev, int *srqn)
131 *srqn = get_param_l(&out_param);
135 return __mlx4_srq_alloc_icm(dev, srqn);
138 void __mlx4_srq_free_icm(struct mlx4_dev *dev, int srqn)
142 mlx4_table_put(dev, &srq_table->cmpt_table, srqn);
143 mlx4_table_put(dev, &srq_table->table, srqn);
144 mlx4_bitmap_free(&srq_table->bitmap, srqn, MLX4_NO_RR);
147 static void mlx4_srq_free_icm(struct mlx4_dev *dev, int srqn)
152 set_param_l(&in_param, srqn);
156 mlx4_warn(dev, "Failed freeing cq:%d\n", srqn);
159 __mlx4_srq_free_icm(dev, srqn);
171 err = mlx4_srq_alloc_icm(dev, &srq->srqn);
176 err = radix_tree_insert(&srq_table->tree, srq->srqn, srq);
189 srq->srqn);
201 err = mlx4_SW2HW_SRQ(dev, mailbox, srq->srqn);
213 radix_tree_delete(&srq_table->tree, srq->srqn);
217 mlx4_srq_free_icm(dev, srq->srqn);
227 err = mlx4_HW2SW_SRQ(dev, NULL, srq->srqn);
229 mlx4_warn(dev, "HW2SW_SRQ failed (%d) for SRQN %06x\n", err, srq->srqn);
232 radix_tree_delete(&srq_table->tree, srq->srqn);
239 mlx4_srq_free_icm(dev, srq->srqn);
245 return mlx4_ARM_SRQ(dev, srq->srqn, limit_watermark);
261 err = mlx4_QUERY_SRQ(dev, mailbox, srq->srqn);
297 struct mlx4_srq *mlx4_srq_lookup(struct mlx4_dev *dev, u32 srqn)
304 srqn & (dev->caps.num_srqs - 1));