Lines Matching refs:qp

52 	struct mlx4_qp *qp;  in mlx4_qp_event()  local
56 qp = __mlx4_qp_lookup(dev, qpn); in mlx4_qp_event()
57 if (qp) in mlx4_qp_event()
58 atomic_inc(&qp->refcount); in mlx4_qp_event()
62 if (!qp) { in mlx4_qp_event()
67 qp->event(qp, event_type); in mlx4_qp_event()
69 if (atomic_dec_and_test(&qp->refcount)) in mlx4_qp_event()
70 complete(&qp->free); in mlx4_qp_event()
74 static int is_master_qp0(struct mlx4_dev *dev, struct mlx4_qp *qp, int *real_qp0, int *proxy_qp0) in is_master_qp0() argument
79 *proxy_qp0 = qp->qpn >= pf_proxy_offset && qp->qpn <= pf_proxy_offset + 1; in is_master_qp0()
81 *real_qp0 = qp->qpn >= dev->phys_caps.base_sqpn && in is_master_qp0()
82 qp->qpn <= dev->phys_caps.base_sqpn + 1; in is_master_qp0()
91 int sqd_event, struct mlx4_qp *qp, int native) in __mlx4_qp_modify() argument
145 ret = mlx4_cmd(dev, 0, qp->qpn, 2, in __mlx4_qp_modify()
149 is_master_qp0(dev, qp, &real_qp0, &proxy_qp0)) { in __mlx4_qp_modify()
150 port = (qp->qpn & 1) + 1; in __mlx4_qp_modify()
174 cpu_to_be32(qp->qpn); in __mlx4_qp_modify()
177 qp->qpn | (!!sqd_event << 31), in __mlx4_qp_modify()
181 if (mlx4_is_master(dev) && is_master_qp0(dev, qp, &real_qp0, &proxy_qp0)) { in __mlx4_qp_modify()
182 port = (qp->qpn & 1) + 1; in __mlx4_qp_modify()
206 int sqd_event, struct mlx4_qp *qp) in mlx4_qp_modify() argument
209 optpar, sqd_event, qp, 0); in mlx4_qp_modify()
381 int mlx4_qp_alloc(struct mlx4_dev *dev, int qpn, struct mlx4_qp *qp, gfp_t gfp) in mlx4_qp_alloc() argument
390 qp->qpn = qpn; in mlx4_qp_alloc()
397 err = radix_tree_insert(&dev->qp_table_tree, qp->qpn & in mlx4_qp_alloc()
398 (dev->caps.num_qps - 1), qp); in mlx4_qp_alloc()
403 atomic_set(&qp->refcount, 1); in mlx4_qp_alloc()
404 init_completion(&qp->free); in mlx4_qp_alloc()
467 void mlx4_qp_remove(struct mlx4_dev *dev, struct mlx4_qp *qp) in mlx4_qp_remove() argument
473 radix_tree_delete(&dev->qp_table_tree, qp->qpn & (dev->caps.num_qps - 1)); in mlx4_qp_remove()
478 void mlx4_qp_free(struct mlx4_dev *dev, struct mlx4_qp *qp) in mlx4_qp_free() argument
480 if (atomic_dec_and_test(&qp->refcount)) in mlx4_qp_free()
481 complete(&qp->free); in mlx4_qp_free()
482 wait_for_completion(&qp->free); in mlx4_qp_free()
484 mlx4_qp_free_icm(dev, qp->qpn); in mlx4_qp_free()
857 int mlx4_qp_query(struct mlx4_dev *dev, struct mlx4_qp *qp, in mlx4_qp_query() argument
867 err = mlx4_cmd_box(dev, 0, mailbox->dma, qp->qpn, 0, in mlx4_qp_query()
880 struct mlx4_qp *qp, enum mlx4_qp_state *qp_state) in mlx4_qp_to_ready() argument
897 context, 0, 0, qp); in mlx4_qp_to_ready()