|
@@ -179,8 +179,6 @@ struct cm_av {
|
|
struct ib_ah_attr ah_attr;
|
|
struct ib_ah_attr ah_attr;
|
|
u16 pkey_index;
|
|
u16 pkey_index;
|
|
u8 timeout;
|
|
u8 timeout;
|
|
- u8 valid;
|
|
|
|
- u8 smac[ETH_ALEN];
|
|
|
|
};
|
|
};
|
|
|
|
|
|
struct cm_work {
|
|
struct cm_work {
|
|
@@ -389,7 +387,6 @@ static int cm_init_av_by_path(struct ib_sa_path_rec *path, struct cm_av *av)
|
|
&av->ah_attr);
|
|
&av->ah_attr);
|
|
av->timeout = path->packet_life_time + 1;
|
|
av->timeout = path->packet_life_time + 1;
|
|
|
|
|
|
- av->valid = 1;
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1642,7 +1639,6 @@ static int cm_req_handler(struct cm_work *work)
|
|
cm_format_paths_from_req(req_msg, &work->path[0], &work->path[1]);
|
|
cm_format_paths_from_req(req_msg, &work->path[0], &work->path[1]);
|
|
|
|
|
|
memcpy(work->path[0].dmac, cm_id_priv->av.ah_attr.dmac, ETH_ALEN);
|
|
memcpy(work->path[0].dmac, cm_id_priv->av.ah_attr.dmac, ETH_ALEN);
|
|
- work->path[0].vlan_id = cm_id_priv->av.ah_attr.vlan_id;
|
|
|
|
ret = cm_init_av_by_path(&work->path[0], &cm_id_priv->av);
|
|
ret = cm_init_av_by_path(&work->path[0], &cm_id_priv->av);
|
|
if (ret) {
|
|
if (ret) {
|
|
ib_get_cached_gid(work->port->cm_dev->ib_device,
|
|
ib_get_cached_gid(work->port->cm_dev->ib_device,
|
|
@@ -3622,32 +3618,6 @@ static int cm_init_qp_rtr_attr(struct cm_id_private *cm_id_priv,
|
|
*qp_attr_mask = IB_QP_STATE | IB_QP_AV | IB_QP_PATH_MTU |
|
|
*qp_attr_mask = IB_QP_STATE | IB_QP_AV | IB_QP_PATH_MTU |
|
|
IB_QP_DEST_QPN | IB_QP_RQ_PSN;
|
|
IB_QP_DEST_QPN | IB_QP_RQ_PSN;
|
|
qp_attr->ah_attr = cm_id_priv->av.ah_attr;
|
|
qp_attr->ah_attr = cm_id_priv->av.ah_attr;
|
|
- if (!cm_id_priv->av.valid) {
|
|
|
|
- spin_unlock_irqrestore(&cm_id_priv->lock, flags);
|
|
|
|
- return -EINVAL;
|
|
|
|
- }
|
|
|
|
- if (cm_id_priv->av.ah_attr.vlan_id != 0xffff) {
|
|
|
|
- qp_attr->vlan_id = cm_id_priv->av.ah_attr.vlan_id;
|
|
|
|
- *qp_attr_mask |= IB_QP_VID;
|
|
|
|
- }
|
|
|
|
- if (!is_zero_ether_addr(cm_id_priv->av.smac)) {
|
|
|
|
- memcpy(qp_attr->smac, cm_id_priv->av.smac,
|
|
|
|
- sizeof(qp_attr->smac));
|
|
|
|
- *qp_attr_mask |= IB_QP_SMAC;
|
|
|
|
- }
|
|
|
|
- if (cm_id_priv->alt_av.valid) {
|
|
|
|
- if (cm_id_priv->alt_av.ah_attr.vlan_id != 0xffff) {
|
|
|
|
- qp_attr->alt_vlan_id =
|
|
|
|
- cm_id_priv->alt_av.ah_attr.vlan_id;
|
|
|
|
- *qp_attr_mask |= IB_QP_ALT_VID;
|
|
|
|
- }
|
|
|
|
- if (!is_zero_ether_addr(cm_id_priv->alt_av.smac)) {
|
|
|
|
- memcpy(qp_attr->alt_smac,
|
|
|
|
- cm_id_priv->alt_av.smac,
|
|
|
|
- sizeof(qp_attr->alt_smac));
|
|
|
|
- *qp_attr_mask |= IB_QP_ALT_SMAC;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
qp_attr->path_mtu = cm_id_priv->path_mtu;
|
|
qp_attr->path_mtu = cm_id_priv->path_mtu;
|
|
qp_attr->dest_qp_num = be32_to_cpu(cm_id_priv->remote_qpn);
|
|
qp_attr->dest_qp_num = be32_to_cpu(cm_id_priv->remote_qpn);
|
|
qp_attr->rq_psn = be32_to_cpu(cm_id_priv->rq_psn);
|
|
qp_attr->rq_psn = be32_to_cpu(cm_id_priv->rq_psn);
|