diff options
-rw-r--r-- | drivers/infiniband/core/verbs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c index c2b89cc5dbca..f93eb8da7b5a 100644 --- a/drivers/infiniband/core/verbs.c +++ b/drivers/infiniband/core/verbs.c | |||
@@ -879,7 +879,8 @@ int ib_resolve_eth_l2_attrs(struct ib_qp *qp, | |||
879 | if (rdma_link_local_addr((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw)) { | 879 | if (rdma_link_local_addr((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw)) { |
880 | rdma_get_ll_mac((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw, qp_attr->ah_attr.dmac); | 880 | rdma_get_ll_mac((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw, qp_attr->ah_attr.dmac); |
881 | rdma_get_ll_mac((struct in6_addr *)sgid.raw, qp_attr->smac); | 881 | rdma_get_ll_mac((struct in6_addr *)sgid.raw, qp_attr->smac); |
882 | qp_attr->vlan_id = rdma_get_vlan_id(&sgid); | 882 | if (!(*qp_attr_mask & IB_QP_VID)) |
883 | qp_attr->vlan_id = rdma_get_vlan_id(&sgid); | ||
883 | } else { | 884 | } else { |
884 | ret = rdma_addr_find_dmac_by_grh(&sgid, &qp_attr->ah_attr.grh.dgid, | 885 | ret = rdma_addr_find_dmac_by_grh(&sgid, &qp_attr->ah_attr.grh.dgid, |
885 | qp_attr->ah_attr.dmac, &qp_attr->vlan_id); | 886 | qp_attr->ah_attr.dmac, &qp_attr->vlan_id); |