Lines Matching refs:device

48 		 event->event, event->device->name,  in iser_event_handler()
200 iser_create_device_ib_res(struct iser_device *device) in iser_create_device_ib_res() argument
202 struct ib_device *ib_dev = device->ib_device; in iser_create_device_ib_res()
207 "can't register memory", device->ib_device->name); in iser_create_device_ib_res()
211 device->comps_used = min(mp_ncpus, device->ib_device->num_comp_vectors); in iser_create_device_ib_res()
213 device->comps = malloc(device->comps_used * sizeof(*device->comps), in iser_create_device_ib_res()
219 device->comps_used, device->ib_device->name, in iser_create_device_ib_res()
220 device->ib_device->num_comp_vectors, max_cqe); in iser_create_device_ib_res()
222 device->pd = ib_alloc_pd(device->ib_device, IB_PD_UNSAFE_GLOBAL_RKEY); in iser_create_device_ib_res()
223 if (IS_ERR(device->pd)) in iser_create_device_ib_res()
226 for (i = 0; i < device->comps_used; i++) { in iser_create_device_ib_res()
227 struct iser_comp *comp = &device->comps[i]; in iser_create_device_ib_res()
233 comp->device = device; in iser_create_device_ib_res()
234 comp->cq = ib_create_cq(device->ib_device, in iser_create_device_ib_res()
255 device->mr = device->pd->__internal_mr; in iser_create_device_ib_res()
256 if (IS_ERR(device->mr)) in iser_create_device_ib_res()
259 INIT_IB_EVENT_HANDLER(&device->event_handler, device->ib_device, in iser_create_device_ib_res()
261 if (ib_register_event_handler(&device->event_handler)) in iser_create_device_ib_res()
267 for (i = 0; i < device->comps_used; i++) { in iser_create_device_ib_res()
268 struct iser_comp *comp = &device->comps[i]; in iser_create_device_ib_res()
273 for (i = 0; i < device->comps_used; i++) { in iser_create_device_ib_res()
274 struct iser_comp *comp = &device->comps[i]; in iser_create_device_ib_res()
278 ib_dealloc_pd(device->pd); in iser_create_device_ib_res()
280 free(device->comps, M_ISER_VERBS); in iser_create_device_ib_res()
290 iser_free_device_ib_res(struct iser_device *device) in iser_free_device_ib_res() argument
294 for (i = 0; i < device->comps_used; i++) { in iser_free_device_ib_res()
295 struct iser_comp *comp = &device->comps[i]; in iser_free_device_ib_res()
302 (void)ib_unregister_event_handler(&device->event_handler); in iser_free_device_ib_res()
303 (void)ib_dealloc_pd(device->pd); in iser_free_device_ib_res()
305 free(device->comps, M_ISER_VERBS); in iser_free_device_ib_res()
306 device->comps = NULL; in iser_free_device_ib_res()
308 device->mr = NULL; in iser_free_device_ib_res()
309 device->pd = NULL; in iser_free_device_ib_res()
363 struct iser_device *device = ib_conn->device; in iser_create_fastreg_pool() local
370 desc = iser_create_fastreg_desc(device->ib_device, device->pd); in iser_create_fastreg_pool()
422 struct iser_device *device; in iser_create_ib_conn_res() local
429 device = ib_conn->device; in iser_create_ib_conn_res()
430 dev_attr = &device->dev_attr; in iser_create_ib_conn_res()
434 for (index = 0; index < device->comps_used; index++) { in iser_create_ib_conn_res()
435 if (device->comps[index].active_qps < in iser_create_ib_conn_res()
436 device->comps[min_index].active_qps) in iser_create_ib_conn_res()
439 ib_conn->comp = &device->comps[min_index]; in iser_create_ib_conn_res()
465 device->ib_device->name, dev_attr->max_qp_wr); in iser_create_ib_conn_res()
467 ret = rdma_create_qp(ib_conn->cma_id, device->pd, &init_attr); in iser_create_ib_conn_res()
494 struct iser_device *device; in iser_device_find_by_ib_device() local
498 list_for_each_entry(device, &ig.device_list, ig_list) in iser_device_find_by_ib_device()
500 if (device->ib_device->node_guid == cma_id->device->node_guid) in iser_device_find_by_ib_device()
503 device = malloc(sizeof *device, M_ISER_VERBS, M_WAITOK | M_ZERO); in iser_device_find_by_ib_device()
505 device->ib_device = cma_id->device; in iser_device_find_by_ib_device()
507 if (iser_create_device_ib_res(device)) { in iser_device_find_by_ib_device()
508 free(device, M_ISER_VERBS); in iser_device_find_by_ib_device()
509 device = NULL; in iser_device_find_by_ib_device()
512 list_add(&device->ig_list, &ig.device_list); in iser_device_find_by_ib_device()
515 device->refcount++; in iser_device_find_by_ib_device()
516 ISER_INFO("device %p refcount %d", device, device->refcount); in iser_device_find_by_ib_device()
519 return (device); in iser_device_find_by_ib_device()
524 iser_device_try_release(struct iser_device *device) in iser_device_try_release() argument
527 device->refcount--; in iser_device_try_release()
528 ISER_INFO("device %p refcount %d", device, device->refcount); in iser_device_try_release()
529 if (!device->refcount) { in iser_device_try_release()
530 iser_free_device_ib_res(device); in iser_device_try_release()
531 list_del(&device->ig_list); in iser_device_try_release()
532 free(device, M_ISER_VERBS); in iser_device_try_release()
533 device = NULL; in iser_device_try_release()
570 struct iser_device *device = ib_conn->device; in iser_free_ib_conn_res() local
590 if (device != NULL) { in iser_free_ib_conn_res()
591 iser_device_try_release(device); in iser_free_ib_conn_res()
592 ib_conn->device = NULL; in iser_free_ib_conn_res()
701 struct iser_device *device; in iser_addr_handler() local
709 device = iser_device_find_by_ib_device(cma_id); in iser_addr_handler()
710 if (!device) { in iser_addr_handler()
717 ib_conn->device = device; in iser_addr_handler()
738 struct iser_device *device = ib_conn->device; in iser_route_handler() local
745 conn_param.responder_resources = device->dev_attr.max_qp_rd_atom; in iser_route_handler()
859 sge.lkey = ib_conn->device->mr->lkey; in iser_post_recvl()
921 ib_dma_sync_single_for_device(ib_conn->device->ib_device, in iser_post_send()