Lines Matching refs:umrc
174 dev->umrc.qp = qp;
175 dev->umrc.cq = cq;
176 dev->umrc.pd = pd;
178 sema_init(&dev->umrc.sem, MAX_UMR_WR);
179 mutex_init(&dev->umrc.lock);
180 dev->umrc.state = MLX5_UMR_STATE_ACTIVE;
195 if (dev->umrc.state == MLX5_UMR_STATE_UNINIT)
197 ib_destroy_qp(dev->umrc.qp);
198 ib_free_cq(dev->umrc.cq);
199 ib_dealloc_pd(dev->umrc.pd);
204 struct umr_common *umrc = &dev->umrc;
209 err = ib_modify_qp(umrc->qp, &attr, IB_QP_STATE);
215 err = mlx5r_umr_qp_rst2rts(dev, umrc->qp);
219 umrc->state = MLX5_UMR_STATE_ACTIVE;
223 umrc->state = MLX5_UMR_STATE_ERR;
291 struct umr_common *umrc = &dev->umrc;
301 down(&umrc->sem);
303 mutex_lock(&umrc->lock);
304 if (umrc->state == MLX5_UMR_STATE_ERR) {
305 mutex_unlock(&umrc->lock);
310 if (umrc->state == MLX5_UMR_STATE_RECOVER) {
311 mutex_unlock(&umrc->lock);
316 err = mlx5r_umr_post_send(umrc->qp, mkey, &umr_context.cqe, wqe,
318 mutex_unlock(&umrc->lock);
337 mutex_lock(&umrc->lock);
339 mutex_unlock(&umrc->lock);
346 up(&umrc->sem);
371 MLX5_SET(mkc, &wqe.mkey_seg, pd, to_mpd(dev->umrc.pd)->pdn);
521 sg->lkey = dev->umrc.pd->local_dma_lkey;