Lines Matching refs:cma_dev

93 	struct cma_device	*cma_dev;  member
264 static int ucma_init_device(struct cma_device *cma_dev) in ucma_init_device() argument
270 if (cma_dev->verbs) in ucma_init_device()
273 cma_dev->verbs = ucma_open_device(cma_dev->guid); in ucma_init_device()
274 if (!cma_dev->verbs) in ucma_init_device()
277 ret = ibv_query_device(cma_dev->verbs, &attr); in ucma_init_device()
283 cma_dev->port = malloc(sizeof(*cma_dev->port) * attr.phys_port_cnt); in ucma_init_device()
284 if (!cma_dev->port) { in ucma_init_device()
290 if (ibv_query_port(cma_dev->verbs, i, &port_attr)) in ucma_init_device()
291 cma_dev->port[i - 1].link_layer = IBV_LINK_LAYER_UNSPECIFIED; in ucma_init_device()
293 cma_dev->port[i - 1].link_layer = port_attr.link_layer; in ucma_init_device()
296 cma_dev->port_cnt = attr.phys_port_cnt; in ucma_init_device()
297 cma_dev->max_qpsize = attr.max_qp_wr; in ucma_init_device()
298 cma_dev->max_initiator_depth = (uint8_t) attr.max_qp_init_rd_atom; in ucma_init_device()
299 cma_dev->max_responder_resources = (uint8_t) attr.max_qp_rd_atom; in ucma_init_device()
304 ibv_close_device(cma_dev->verbs); in ucma_init_device()
305 cma_dev->verbs = NULL; in ucma_init_device()
387 struct cma_device *cma_dev; in ucma_get_device() local
391 cma_dev = &cma_dev_array[i]; in ucma_get_device()
392 if (cma_dev->guid == guid) in ucma_get_device()
399 if ((ret = ucma_init_device(cma_dev))) in ucma_get_device()
402 if (!cma_dev->refcnt++) { in ucma_get_device()
403 cma_dev->pd = ibv_alloc_pd(cma_dev->verbs); in ucma_get_device()
404 if (!cma_dev->pd) { in ucma_get_device()
405 cma_dev->refcnt--; in ucma_get_device()
410 id_priv->cma_dev = cma_dev; in ucma_get_device()
411 id_priv->id.verbs = cma_dev->verbs; in ucma_get_device()
412 id_priv->id.pd = cma_dev->pd; in ucma_get_device()
418 static void ucma_put_device(struct cma_device *cma_dev) in ucma_put_device() argument
421 if (!--cma_dev->refcnt) { in ucma_put_device()
422 ibv_dealloc_pd(cma_dev->pd); in ucma_put_device()
423 if (cma_dev->xrcd) in ucma_put_device()
424 ibv_close_xrcd(cma_dev->xrcd); in ucma_put_device()
429 static struct ibv_xrcd *ucma_get_xrcd(struct cma_device *cma_dev) in ucma_get_xrcd() argument
434 if (!cma_dev->xrcd) { in ucma_get_xrcd()
439 cma_dev->xrcd = ibv_open_xrcd(cma_dev->verbs, &attr); in ucma_get_xrcd()
442 return cma_dev->xrcd; in ucma_get_xrcd()
466 if (id_priv->cma_dev) in ucma_free_id()
467 ucma_put_device(id_priv->cma_dev); in ucma_free_id()
642 if (!id_priv->cma_dev && resp.node_guid) { in ucma_query_addr()
786 if (!id_priv->cma_dev && resp.node_guid) { in ucma_query_route()
1044 link_layer = id_priv->cma_dev->port[id->port_num - 1].link_layer; in ucma_modify_qp_rtr()
1091 static int ucma_find_pkey(struct cma_device *cma_dev, uint8_t port_num, in ucma_find_pkey() argument
1098 ret = ibv_query_pkey(cma_dev->verbs, port_num, i, &chk_pkey); in ucma_find_pkey()
1112 ret = ucma_find_pkey(id_priv->cma_dev, id_priv->id.port_num, in ucma_init_conn_qp3()
1148 ret = ucma_find_pkey(id_priv->cma_dev, id_priv->id.port_num, in ucma_init_ud_qp3()
1273 attr->xrcd = ucma_get_xrcd(id_priv->cma_dev); in rdma_create_srq_ex()
1350 attr->xrcd = ucma_get_xrcd(id_priv->cma_dev); in rdma_create_qp_ex()
1425 (param->responder_resources > id_priv->cma_dev->max_responder_resources)) in ucma_valid_param()
1429 (param->initiator_depth > id_priv->cma_dev->max_initiator_depth)) in ucma_valid_param()
1483 id_priv->initiator_depth = id_priv->cma_dev->max_initiator_depth; in rdma_connect()
1487 id_priv->responder_resources = id_priv->cma_dev->max_responder_resources; in rdma_connect()
1597 id_priv->cma_dev->max_initiator_depth); in rdma_accept()
1603 id_priv->cma_dev->max_responder_resources); in rdma_accept()
2426 if (id && id_priv->cma_dev) { in ucma_max_qpsize()
2427 max_size = id_priv->cma_dev->max_qpsize; in ucma_max_qpsize()