Lines Matching refs:priv

39 int ipoib_mcast_attach(struct ipoib_dev_priv *priv, u16 mlid, union ib_gid *mgid, int set_qkey)
45 if (ib_find_pkey(priv->ca, priv->port, priv->pkey, &pkey_index)) {
46 clear_bit(IPOIB_PKEY_ASSIGNED, &priv->flags);
50 set_bit(IPOIB_PKEY_ASSIGNED, &priv->flags);
59 qp_attr->qkey = priv->qkey;
60 ret = ib_modify_qp(priv->qp, qp_attr, IB_QP_QKEY);
62 ipoib_warn(priv, "failed to modify QP, ret = %d\n", ret);
68 ret = ib_attach_mcast(priv->qp, mgid, mlid);
70 ipoib_warn(priv, "failed to attach to multicast group, ret = %d\n", ret);
77 int ipoib_init_qp(struct ipoib_dev_priv *priv)
83 if (!test_bit(IPOIB_PKEY_ASSIGNED, &priv->flags))
88 qp_attr.port_num = priv->port;
89 qp_attr.pkey_index = priv->pkey_index;
96 ret = ib_modify_qp(priv->qp, &qp_attr, attr_mask);
98 ipoib_warn(priv, "failed to modify QP to init, ret = %d\n", ret);
105 ret = ib_modify_qp(priv->qp, &qp_attr, attr_mask);
107 ipoib_warn(priv, "failed to modify QP to RTR, ret = %d\n", ret);
115 ret = ib_modify_qp(priv->qp, &qp_attr, attr_mask);
117 ipoib_warn(priv, "failed to modify QP to RTS, ret = %d\n", ret);
125 if (ib_modify_qp(priv->qp, &qp_attr, IB_QP_STATE))
126 ipoib_warn(priv, "Failed to modify QP to RESET state\n");
131 int ipoib_transport_dev_init(struct ipoib_dev_priv *priv, struct ib_device *ca)
150 priv->pd = ib_alloc_pd(priv->ca, 0);
151 if (IS_ERR(priv->pd)) {
157 ret = ipoib_cm_dev_init(priv);
160 if (ipoib_cm_has_srq(priv))
167 priv->recv_cq = ib_create_cq(priv->ca, ipoib_ib_completion, NULL, priv, &cq_attr);
168 if (IS_ERR(priv->recv_cq)) {
174 priv->send_cq = ib_create_cq(priv->ca, ipoib_send_comp_handler, NULL,
175 priv, &cq_attr);
176 if (IS_ERR(priv->send_cq)) {
181 if (ib_req_notify_cq(priv->recv_cq, IB_CQ_NEXT_COMP))
197 init_attr.send_cq = priv->send_cq;
198 init_attr.recv_cq = priv->recv_cq;
200 if (priv->hca_caps & IB_DEVICE_UD_TSO)
203 if (priv->hca_caps & IB_DEVICE_BLOCK_MULTICAST_LOOPBACK)
208 priv->qp = ib_create_qp(priv->pd, &init_attr);
209 if (IS_ERR(priv->qp)) {
214 lla = if_getlladdr(priv->dev);
215 lla[1] = (priv->qp->qp_num >> 16) & 0xff;
216 lla[2] = (priv->qp->qp_num >> 8) & 0xff;
217 lla[3] = (priv->qp->qp_num ) & 0xff;
220 priv->tx_sge[i].lkey = priv->pd->local_dma_lkey;
222 priv->tx_wr.wr.opcode = IB_WR_SEND;
223 priv->tx_wr.wr.sg_list = priv->tx_sge;
224 priv->tx_wr.wr.send_flags = IB_SEND_SIGNALED;
227 priv->rx_sge[i].lkey = priv->pd->local_dma_lkey;
228 priv->rx_wr.next = NULL;
229 priv->rx_wr.sg_list = priv->rx_sge;
234 ib_destroy_cq(priv->send_cq);
237 ib_destroy_cq(priv->recv_cq);
240 ipoib_cm_dev_cleanup(priv);
242 ib_dealloc_pd(priv->pd);
246 void ipoib_transport_dev_cleanup(struct ipoib_dev_priv *priv)
249 if (priv->qp) {
250 if (ib_destroy_qp(priv->qp))
251 ipoib_warn(priv, "ib_qp_destroy failed\n");
253 priv->qp = NULL;
254 clear_bit(IPOIB_PKEY_ASSIGNED, &priv->flags);
257 ib_destroy_cq(priv->send_cq);
259 ib_destroy_cq(priv->recv_cq);
261 ipoib_cm_dev_cleanup(priv);
263 ib_dealloc_pd(priv->pd);
269 struct ipoib_dev_priv *priv =
272 if (record->element.port_num != priv->port)
275 ipoib_dbg(priv, "Event %d on device %s port %d\n", record->event,
280 queue_work(ipoib_workqueue, &priv->flush_light);
285 queue_work(ipoib_workqueue, &priv->flush_normal);
287 queue_work(ipoib_workqueue, &priv->flush_heavy);