Lines Matching refs:mqp
809 struct mlx4_ib_qp *mqp = to_mqp(ibqp); in add_gid_entry() local
818 if (mlx4_ib_add_mc(mdev, mqp, gid)) { in add_gid_entry()
819 ge->port = mqp->port; in add_gid_entry()
823 mutex_lock(&mqp->mutex); in add_gid_entry()
824 list_add_tail(&ge->list, &mqp->gid_list); in add_gid_entry()
825 mutex_unlock(&mqp->mutex); in add_gid_entry()
830 int mlx4_ib_add_mc(struct mlx4_ib_dev *mdev, struct mlx4_ib_qp *mqp, in mlx4_ib_add_mc() argument
836 if (!mqp->port) in mlx4_ib_add_mc()
840 ndev = mdev->iboe.netdevs[mqp->port - 1]; in mlx4_ib_add_mc()
1271 struct mlx4_ib_qp *mqp = to_mqp(ibqp); in mlx4_ib_mcg_attach() local
1283 err = mlx4_multicast_attach(mdev->dev, &mqp->mqp, gid->raw, mqp->port, in mlx4_ib_mcg_attach()
1284 !!(mqp->flags & in mlx4_ib_mcg_attach()
1294 err = mlx4_multicast_attach(mdev->dev, &mqp->mqp, gid->raw, in mlx4_ib_mcg_attach()
1295 (mqp->port == 1) ? 2 : 1, in mlx4_ib_mcg_attach()
1296 !!(mqp->flags & in mlx4_ib_mcg_attach()
1310 mutex_lock(&mqp->mutex); in mlx4_ib_mcg_attach()
1311 list_add(&ib_steering->list, &mqp->steering_rules); in mlx4_ib_mcg_attach()
1312 mutex_unlock(&mqp->mutex); in mlx4_ib_mcg_attach()
1317 mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, in mlx4_ib_mcg_attach()
1320 mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, in mlx4_ib_mcg_attach()
1349 struct mlx4_ib_qp *mqp = to_mqp(ibqp); in mlx4_ib_mcg_detach() local
1359 mutex_lock(&mqp->mutex); in mlx4_ib_mcg_detach()
1360 list_for_each_entry(ib_steering, &mqp->steering_rules, list) { in mlx4_ib_mcg_detach()
1366 mutex_unlock(&mqp->mutex); in mlx4_ib_mcg_detach()
1367 if (&ib_steering->list == &mqp->steering_rules) { in mlx4_ib_mcg_detach()
1375 err = mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, in mlx4_ib_mcg_detach()
1381 err = mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, in mlx4_ib_mcg_detach()
1387 mutex_lock(&mqp->mutex); in mlx4_ib_mcg_detach()
1388 ge = find_gid_entry(mqp, gid->raw); in mlx4_ib_mcg_detach()
1402 mutex_unlock(&mqp->mutex); in mlx4_ib_mcg_detach()
1795 if (mlx4_update_qp(ibdev->dev, qp->mqp.qpn, MLX4_UPDATE_QP_SMAC, in mlx4_ib_update_qps()
2491 int mlx4_ib_steer_qp_reg(struct mlx4_ib_dev *mdev, struct mlx4_ib_qp *mqp, in mlx4_ib_steer_qp_reg() argument
2505 flow->port = mqp->port; in mlx4_ib_steer_qp_reg()
2514 err = __mlx4_ib_create_flow(&mqp->ibqp, flow, in mlx4_ib_steer_qp_reg()
2517 &mqp->reg_id); in mlx4_ib_steer_qp_reg()
2519 err = __mlx4_ib_destroy_flow(mdev->dev, mqp->reg_id); in mlx4_ib_steer_qp_reg()
2628 struct mlx4_ib_qp *mqp; in mlx4_ib_handle_catas_error() local
2642 list_for_each_entry(mqp, &ibdev->qp_list, qps_list) { in mlx4_ib_handle_catas_error()
2643 spin_lock_irqsave(&mqp->sq.lock, flags_qp); in mlx4_ib_handle_catas_error()
2644 if (mqp->sq.tail != mqp->sq.head) { in mlx4_ib_handle_catas_error()
2645 send_mcq = to_mcq(mqp->ibqp.send_cq); in mlx4_ib_handle_catas_error()
2648 mqp->ibqp.send_cq->comp_handler) { in mlx4_ib_handle_catas_error()
2657 spin_unlock_irqrestore(&mqp->sq.lock, flags_qp); in mlx4_ib_handle_catas_error()
2659 spin_lock_irqsave(&mqp->rq.lock, flags_qp); in mlx4_ib_handle_catas_error()
2661 if (!mqp->ibqp.srq) { in mlx4_ib_handle_catas_error()
2662 if (mqp->rq.tail != mqp->rq.head) { in mlx4_ib_handle_catas_error()
2663 recv_mcq = to_mcq(mqp->ibqp.recv_cq); in mlx4_ib_handle_catas_error()
2666 mqp->ibqp.recv_cq->comp_handler) { in mlx4_ib_handle_catas_error()
2677 spin_unlock_irqrestore(&mqp->rq.lock, flags_qp); in mlx4_ib_handle_catas_error()