rdma_cm
rdma_disconnect(ch->rdma_cm.cm_id);
ret = srp_parse_in(net, &target->rdma_cm.src.ss, p,
target->rdma_cm.src_specified = true;
ret = srp_parse_in(net, &target->rdma_cm.dst.ss, p,
ret = rdma_resolve_addr(new_cm_id, target->rdma_cm.src_specified ?
&target->rdma_cm.src.sa : NULL,
&target->rdma_cm.dst.sa,
&target->rdma_cm.src, &target->rdma_cm.dst, ret);
&target->rdma_cm.dst, ret);
swap(ch->rdma_cm.cm_id, new_cm_id);
&target->rdma_cm.dst);
&target->rdma_cm.dst);
target->sgid.raw, &target->rdma_cm.dst);
ret = rdma_create_qp(ch->rdma_cm.cm_id, dev->pd, init_attr);
qp = ch->rdma_cm.cm_id->qp;
rdma_destroy_qp(ch->rdma_cm.cm_id);
if (ch->rdma_cm.cm_id) {
rdma_destroy_id(ch->rdma_cm.cm_id);
ch->rdma_cm.cm_id = NULL;
ret = rdma_resolve_route(ch->rdma_cm.cm_id, SRP_PATH_REC_TIMEOUT_MS);
status = rdma_connect(ch->rdma_cm.cm_id, &req->rdma_param);
if (ch->rdma_cm.cm_id)
rdma_disconnect(ch->rdma_cm.cm_id);
} rdma_cm;
} rdma_cm;
ret = rdma_create_qp(ch->rdma_cm.cm_id, sdev->pd, qp_init);
ch->qp = ch->rdma_cm.cm_id->qp;
ret = rdma_disconnect(ch->rdma_cm.cm_id);
rdma_destroy_id(ch->rdma_cm.cm_id);
struct rdma_conn_param rdma_cm;
ch->rdma_cm.cm_id = rdma_cm_id;
rep_param->rdma_cm.private_data = (void *)rsp;
rep_param->rdma_cm.private_data_len = sizeof(*rsp);
rep_param->rdma_cm.rnr_retry_count = 7;
rep_param->rdma_cm.flow_control = 1;
rep_param->rdma_cm.responder_resources = 4;
rep_param->rdma_cm.initiator_depth = 4;
ret = rdma_accept(rdma_cm_id, &rep_param->rdma_cm);
rdma_notify(ch->rdma_cm.cm_id, event->event);
} rdma_cm;