Lines Matching defs:cma_id

467 	ret = rdma_create_qp(ib_conn->cma_id, device->pd, &init_attr);
471 ib_conn->qp = ib_conn->cma_id->qp;
472 iser_info("setting conn %p cma_id %p qp %p\n",
473 ib_conn, ib_conn->cma_id,
474 ib_conn->cma_id->qp);
487 struct iser_device *iser_device_find_by_ib_device(struct rdma_cm_id *cma_id)
495 if (device->ib_device->node_guid == cma_id->device->node_guid)
503 device->ib_device = cma_id->device;
584 iser_info("freeing conn %p cma_id %p qp %p\n",
585 iser_conn, ib_conn->cma_id, ib_conn->qp);
591 rdma_destroy_qp(ib_conn->cma_id);
623 if (ib_conn->cma_id != NULL) {
624 rdma_destroy_id(ib_conn->cma_id);
625 ib_conn->cma_id = NULL;
653 * In case we didn't already clean up the cma_id (peer initiated
657 if (ib_conn->cma_id) {
658 err = rdma_disconnect(ib_conn->cma_id);
677 static void iser_connect_error(struct rdma_cm_id *cma_id)
681 iser_conn = (struct iser_conn *)cma_id->context;
688 static void iser_addr_handler(struct rdma_cm_id *cma_id)
695 iser_conn = (struct iser_conn *)cma_id->context;
701 device = iser_device_find_by_ib_device(cma_id);
704 iser_connect_error(cma_id);
723 ret = rdma_resolve_route(cma_id, 1000);
726 iser_connect_error(cma_id);
734 static void iser_route_handler(struct rdma_cm_id *cma_id)
739 struct iser_conn *iser_conn = (struct iser_conn *)cma_id->context;
763 ret = rdma_connect(cma_id, &conn_param);
771 iser_connect_error(cma_id);
774 static void iser_connected_handler(struct rdma_cm_id *cma_id)
780 iser_conn = (struct iser_conn *)cma_id->context;
785 (void)ib_query_qp(cma_id->qp, &attr, ~0, &init_attr);
786 iser_info("remote qpn:%x my qpn:%x\n", attr.dest_qp_num, cma_id->qp->qp_num);
792 static void iser_disconnected_handler(struct rdma_cm_id *cma_id)
794 struct iser_conn *iser_conn = (struct iser_conn *)cma_id->context;
805 static void iser_cleanup_handler(struct rdma_cm_id *cma_id,
808 struct iser_conn *iser_conn = (struct iser_conn *)cma_id->context;
815 iser_disconnected_handler(cma_id);
820 static int iser_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
825 iser_conn = (struct iser_conn *)cma_id->context;
827 event->event, event->status, cma_id->context, cma_id);
832 iser_addr_handler(cma_id);
835 iser_route_handler(cma_id);
838 iser_connected_handler(cma_id);
845 iser_connect_error(cma_id);
849 iser_disconnected_handler(cma_id);
855 * also implicitly destroy the cma_id.
857 iser_cleanup_handler(cma_id, true);
858 iser_conn->ib_conn.cma_id = NULL;
862 iser_cleanup_handler(cma_id, false);
912 ib_conn->cma_id = rdma_create_id(iser_cma_handler,
915 if (IS_ERR(ib_conn->cma_id)) {
916 err = PTR_ERR(ib_conn->cma_id);
921 err = rdma_resolve_addr(ib_conn->cma_id, src_addr, dst_addr, 1000);
943 ib_conn->cma_id = NULL;