|
@@ -879,7 +879,8 @@ int ib_resolve_eth_l2_attrs(struct ib_qp *qp,
|
|
|
if (rdma_link_local_addr((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw)) {
|
|
|
rdma_get_ll_mac((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw, qp_attr->ah_attr.dmac);
|
|
|
rdma_get_ll_mac((struct in6_addr *)sgid.raw, qp_attr->smac);
|
|
|
- qp_attr->vlan_id = rdma_get_vlan_id(&sgid);
|
|
|
+ if (!(*qp_attr_mask & IB_QP_VID))
|
|
|
+ qp_attr->vlan_id = rdma_get_vlan_id(&sgid);
|
|
|
} else {
|
|
|
ret = rdma_addr_find_dmac_by_grh(&sgid, &qp_attr->ah_attr.grh.dgid,
|
|
|
qp_attr->ah_attr.dmac, &qp_attr->vlan_id);
|