ib_cm
sa_path_set_dlid(&ch->ib_cm.path, dlid);
ch->ib_cm.path.pkey = cpi->redirect_pkey;
memcpy(ch->ib_cm.path.dgid.raw, cpi->redirect_gid, 16);
union ib_gid *dgid = &ch->ib_cm.path.dgid;
target->ib_cm.orig_dgid.raw,
be16_to_cpu(target->ib_cm.pkey),
be64_to_cpu(target->ib_cm.service_id));
return sysfs_emit(buf, "0x%04x\n", be16_to_cpu(target->ib_cm.pkey));
return sysfs_emit(buf, "%pI6\n", ch->ib_cm.path.dgid.raw);
return sysfs_emit(buf, "%pI6\n", target->ib_cm.orig_dgid.raw);
if (ch->ib_cm.cm_id)
ib_destroy_cm_id(ch->ib_cm.cm_id);
ch->ib_cm.cm_id = new_cm_id;
ch->ib_cm.path.rec_type = SA_PATH_REC_TYPE_OPA;
ch->ib_cm.path.rec_type = SA_PATH_REC_TYPE_IB;
ch->ib_cm.path.sgid = target->sgid;
ch->ib_cm.path.dgid = target->ib_cm.orig_dgid;
ch->ib_cm.path.pkey = target->ib_cm.pkey;
ch->ib_cm.path.service_id = target->ib_cm.service_id;
ret = hex2bin(target->ib_cm.orig_dgid.raw, p, 16);
target->ib_cm.pkey = cpu_to_be16(token);
target->ib_cm.service_id = cpu_to_be64(ull);
target->ib_cm.orig_dgid.raw);
be16_to_cpu(target->ib_cm.pkey),
be64_to_cpu(target->ib_cm.service_id),
target->ib_cm.orig_dgid.raw);
if (ch->ib_cm.cm_id) {
ib_destroy_cm_id(ch->ib_cm.cm_id);
ch->ib_cm.cm_id = NULL;
ch->ib_cm.path = *pathrec;
ch->ib_cm.path.numb_path = 1;
ch->ib_cm.path_query_id = ib_sa_path_rec_get(&srp_sa_client,
&ch->ib_cm.path,
ch, &ch->ib_cm.path_query);
if (ch->ib_cm.path_query_id < 0)
return ch->ib_cm.path_query_id;
ch->ib_cm.path.sgid.raw, ch->ib_cm.path.dgid.raw,
be16_to_cpu(target->ib_cm.pkey),
be64_to_cpu(target->ib_cm.service_id));
req->ib_param.primary_path = &ch->ib_cm.path;
req->ib_param.service_id = target->ib_cm.service_id;
status = ib_send_cm_req(ch->ib_cm.cm_id, &req->ib_param);
if (ch->ib_cm.cm_id)
ret = ib_send_cm_dreq(ch->ib_cm.cm_id,
} ib_cm;
} ib_cm;
ret = ib_cm_init_qp_attr(ch->ib_cm.cm_id, &qp_attr, &attr_mask);
ret = ib_cm_init_qp_attr(ch->ib_cm.cm_id, &qp_attr, &attr_mask);
ret = ib_send_cm_dreq(ch->ib_cm.cm_id, NULL, 0);
ret = ib_send_cm_drep(ch->ib_cm.cm_id, NULL, 0);
ib_destroy_cm_id(ch->ib_cm.cm_id);
struct ib_cm_rep_param ib_cm;
ch->ib_cm.cm_id = ib_cm_id;
rep_param->ib_cm.qp_num = ch->qp->qp_num;
rep_param->ib_cm.private_data = (void *)rsp;
rep_param->ib_cm.private_data_len = sizeof(*rsp);
rep_param->ib_cm.rnr_retry_count = 7;
rep_param->ib_cm.flow_control = 1;
rep_param->ib_cm.failover_accepted = 0;
rep_param->ib_cm.srq = 1;
rep_param->ib_cm.responder_resources = 4;
rep_param->ib_cm.initiator_depth = 4;
ret = ib_send_cm_rep(ib_cm_id, &rep_param->ib_cm);
ib_cm_notify(ch->ib_cm.cm_id, event->event);
} ib_cm;