Lines Matching refs:msrq
752 struct mlx5_srq *msrq = to_msrq(srq);
759 if (ctx->cqe_version && msrq->rsc.type == MLX5_RSC_TYPE_XSRQ)
760 mlx5_clear_uidx(ctx, msrq->rsc.rsn);
762 mlx5_clear_srq(ctx, msrq->srqn);
764 mlx5_free_db(ctx, msrq->db);
765 mlx5_free_buf(&msrq->buf);
766 free(msrq->wrid);
767 mlx5_spinlock_destroy(&msrq->lock);
768 free(msrq);
1777 struct mlx5_srq *msrq = to_msrq(srq);
1779 *srq_num = msrq->srqn;
1826 struct mlx5_srq *msrq;
1833 msrq = calloc(1, sizeof(*msrq));
1834 if (!msrq)
1837 ibsrq = (struct ibv_srq *)&msrq->vsrq;
1842 if (mlx5_spinlock_init(&msrq->lock)) {
1869 msrq->max = align_queue_size(attr->attr.max_wr + 1);
1870 msrq->max_gs = attr->attr.max_sge;
1871 msrq->counter = 0;
1873 if (mlx5_alloc_srq_buf(context, msrq)) {
1878 msrq->db = mlx5_alloc_dbrec(ctx);
1879 if (!msrq->db) {
1884 *msrq->db = 0;
1886 cmd.buf_addr = (uintptr_t)msrq->buf.buf;
1887 cmd.db_addr = (uintptr_t)msrq->db;
1888 msrq->wq_sig = srq_sig_enabled();
1889 if (msrq->wq_sig)
1892 attr->attr.max_sge = msrq->max_gs;
1894 uidx = mlx5_store_uidx(ctx, msrq);
1905 err = ibv_cmd_create_srq_ex(context, &msrq->vsrq, sizeof(msrq->vsrq),
1912 err = mlx5_store_srq(to_mctx(context), resp.srqn, msrq);
1919 msrq->srqn = resp.srqn;
1920 msrq->rsc.type = MLX5_RSC_TYPE_XSRQ;
1921 msrq->rsc.rsn = ctx->cqe_version ? cmd.uidx : resp.srqn;
1935 mlx5_free_db(ctx, msrq->db);
1938 free(msrq->wrid);
1939 mlx5_free_buf(&msrq->buf);
1942 mlx5_spinlock_destroy(&msrq->lock);
1945 free(msrq);