• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/net/mlx4/

Lines Matching defs:srq

63 	struct mlx4_srq *srq;
67 srq = radix_tree_lookup(&srq_table->tree, srqn & (dev->caps.num_srqs - 1));
68 if (srq)
69 atomic_inc(&srq->refcount);
73 if (!srq) {
78 srq->event(srq, event_type);
80 if (atomic_dec_and_test(&srq->refcount))
81 complete(&srq->free);
106 u64 db_rec, struct mlx4_srq *srq)
114 srq->srqn = mlx4_bitmap_alloc(&srq_table->bitmap);
115 if (srq->srqn == -1)
118 err = mlx4_table_get(dev, &srq_table->table, srq->srqn);
122 err = mlx4_table_get(dev, &srq_table->cmpt_table, srq->srqn);
127 err = radix_tree_insert(&srq_table->tree, srq->srqn, srq);
141 srq_context->state_logsize_srqn = cpu_to_be32((ilog2(srq->max) << 24) |
142 srq->srqn);
143 srq_context->logstride = srq->wqe_shift - 4;
152 err = mlx4_SW2HW_SRQ(dev, mailbox, srq->srqn);
157 atomic_set(&srq->refcount, 1);
158 init_completion(&srq->free);
164 radix_tree_delete(&srq_table->tree, srq->srqn);
168 mlx4_table_put(dev, &srq_table->cmpt_table, srq->srqn);
171 mlx4_table_put(dev, &srq_table->table, srq->srqn);
174 mlx4_bitmap_free(&srq_table->bitmap, srq->srqn);
180 void mlx4_srq_free(struct mlx4_dev *dev, struct mlx4_srq *srq)
185 err = mlx4_HW2SW_SRQ(dev, NULL, srq->srqn);
187 mlx4_warn(dev, "HW2SW_SRQ failed (%d) for SRQN %06x\n", err, srq->srqn);
190 radix_tree_delete(&srq_table->tree, srq->srqn);
193 if (atomic_dec_and_test(&srq->refcount))
194 complete(&srq->free);
195 wait_for_completion(&srq->free);
197 mlx4_table_put(dev, &srq_table->table, srq->srqn);
198 mlx4_bitmap_free(&srq_table->bitmap, srq->srqn);
202 int mlx4_srq_arm(struct mlx4_dev *dev, struct mlx4_srq *srq, int limit_watermark)
204 return mlx4_ARM_SRQ(dev, srq->srqn, limit_watermark);