• Home
  • Raw
  • Download

Lines Matching refs:qp

49 	struct mlx4_qp *qp;  in mlx4_qp_event()  local
53 qp = __mlx4_qp_lookup(dev, qpn); in mlx4_qp_event()
54 if (qp) in mlx4_qp_event()
55 atomic_inc(&qp->refcount); in mlx4_qp_event()
59 if (!qp) { in mlx4_qp_event()
64 qp->event(qp, event_type); in mlx4_qp_event()
66 if (atomic_dec_and_test(&qp->refcount)) in mlx4_qp_event()
67 complete(&qp->free); in mlx4_qp_event()
71 static int is_master_qp0(struct mlx4_dev *dev, struct mlx4_qp *qp, int *real_qp0, int *proxy_qp0) in is_master_qp0() argument
76 *proxy_qp0 = qp->qpn >= pf_proxy_offset && qp->qpn <= pf_proxy_offset + 1; in is_master_qp0()
78 *real_qp0 = qp->qpn >= dev->phys_caps.base_sqpn && in is_master_qp0()
79 qp->qpn <= dev->phys_caps.base_sqpn + 1; in is_master_qp0()
88 int sqd_event, struct mlx4_qp *qp, int native) in __mlx4_qp_modify() argument
142 ret = mlx4_cmd(dev, 0, qp->qpn, 2, in __mlx4_qp_modify()
146 is_master_qp0(dev, qp, &real_qp0, &proxy_qp0)) { in __mlx4_qp_modify()
147 port = (qp->qpn & 1) + 1; in __mlx4_qp_modify()
171 cpu_to_be32(qp->qpn); in __mlx4_qp_modify()
174 qp->qpn | (!!sqd_event << 31), in __mlx4_qp_modify()
178 if (mlx4_is_master(dev) && is_master_qp0(dev, qp, &real_qp0, &proxy_qp0)) { in __mlx4_qp_modify()
179 port = (qp->qpn & 1) + 1; in __mlx4_qp_modify()
203 int sqd_event, struct mlx4_qp *qp) in mlx4_qp_modify() argument
206 optpar, sqd_event, qp, 0); in mlx4_qp_modify()
359 int mlx4_qp_alloc(struct mlx4_dev *dev, int qpn, struct mlx4_qp *qp) in mlx4_qp_alloc() argument
368 qp->qpn = qpn; in mlx4_qp_alloc()
375 err = radix_tree_insert(&dev->qp_table_tree, qp->qpn & in mlx4_qp_alloc()
376 (dev->caps.num_qps - 1), qp); in mlx4_qp_alloc()
381 atomic_set(&qp->refcount, 1); in mlx4_qp_alloc()
382 init_completion(&qp->free); in mlx4_qp_alloc()
393 void mlx4_qp_remove(struct mlx4_dev *dev, struct mlx4_qp *qp) in mlx4_qp_remove() argument
399 radix_tree_delete(&dev->qp_table_tree, qp->qpn & (dev->caps.num_qps - 1)); in mlx4_qp_remove()
404 void mlx4_qp_free(struct mlx4_dev *dev, struct mlx4_qp *qp) in mlx4_qp_free() argument
406 if (atomic_dec_and_test(&qp->refcount)) in mlx4_qp_free()
407 complete(&qp->free); in mlx4_qp_free()
408 wait_for_completion(&qp->free); in mlx4_qp_free()
410 mlx4_qp_free_icm(dev, qp->qpn); in mlx4_qp_free()
542 int mlx4_qp_query(struct mlx4_dev *dev, struct mlx4_qp *qp, in mlx4_qp_query() argument
552 err = mlx4_cmd_box(dev, 0, mailbox->dma, qp->qpn, 0, in mlx4_qp_query()
565 struct mlx4_qp *qp, enum mlx4_qp_state *qp_state) in mlx4_qp_to_ready() argument
580 context, 0, 0, qp); in mlx4_qp_to_ready()