diff options
Diffstat (limited to 'drivers/infiniband/hw/ocrdma/ocrdma_ah.c')
-rw-r--r-- | drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_ah.c b/drivers/infiniband/hw/ocrdma/ocrdma_ah.c index ee499d942257..bbb7962cd9df 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_ah.c +++ b/drivers/infiniband/hw/ocrdma/ocrdma_ah.c | |||
@@ -49,7 +49,7 @@ static inline int set_av_attr(struct ocrdma_dev *dev, struct ocrdma_ah *ah, | |||
49 | 49 | ||
50 | ah->sgid_index = attr->grh.sgid_index; | 50 | ah->sgid_index = attr->grh.sgid_index; |
51 | 51 | ||
52 | vlan_tag = rdma_get_vlan_id(&attr->grh.dgid); | 52 | vlan_tag = attr->vlan_id; |
53 | if (!vlan_tag || (vlan_tag > 0xFFF)) | 53 | if (!vlan_tag || (vlan_tag > 0xFFF)) |
54 | vlan_tag = dev->pvid; | 54 | vlan_tag = dev->pvid; |
55 | if (vlan_tag && (vlan_tag < 0x1000)) { | 55 | if (vlan_tag && (vlan_tag < 0x1000)) { |
@@ -64,7 +64,8 @@ static inline int set_av_attr(struct ocrdma_dev *dev, struct ocrdma_ah *ah, | |||
64 | eth_sz = sizeof(struct ocrdma_eth_basic); | 64 | eth_sz = sizeof(struct ocrdma_eth_basic); |
65 | } | 65 | } |
66 | memcpy(ð.smac[0], &dev->nic_info.mac_addr[0], ETH_ALEN); | 66 | memcpy(ð.smac[0], &dev->nic_info.mac_addr[0], ETH_ALEN); |
67 | status = ocrdma_resolve_dgid(dev, &attr->grh.dgid, ð.dmac[0]); | 67 | memcpy(ð.dmac[0], attr->dmac, ETH_ALEN); |
68 | status = ocrdma_resolve_dmac(dev, attr, ð.dmac[0]); | ||
68 | if (status) | 69 | if (status) |
69 | return status; | 70 | return status; |
70 | status = ocrdma_query_gid(&dev->ibdev, 1, attr->grh.sgid_index, | 71 | status = ocrdma_query_gid(&dev->ibdev, 1, attr->grh.sgid_index, |