X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=net%2F8021q%2Fvlan.c;h=175273f38cb1bd59f5aeb88cb8c815033475dfe8;hb=fc0d48b8fb449ca007b2057328abf736cb516168;hp=b3d17d1c49c3fbecdd5701da18c14c9767f7d969;hpb=825e587af2e90e9b953849f3347a01d8f383d577;p=~andy%2Flinux diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index b3d17d1c49c..175273f38cb 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -301,15 +301,17 @@ static void vlan_sync_address(struct net_device *dev, !ether_addr_equal(vlandev->dev_addr, dev->dev_addr)) dev_uc_add(dev, vlandev->dev_addr); - memcpy(vlan->real_dev_addr, dev->dev_addr, ETH_ALEN); + ether_addr_copy(vlan->real_dev_addr, dev->dev_addr); } static void vlan_transfer_features(struct net_device *dev, struct net_device *vlandev) { + struct vlan_dev_priv *vlan = vlan_dev_priv(vlandev); + vlandev->gso_max_size = dev->gso_max_size; - if (dev->features & NETIF_F_HW_VLAN_CTAG_TX) + if (vlan_hw_offload_capable(dev->features, vlan->vlan_proto)) vlandev->hard_header_len = dev->hard_header_len; else vlandev->hard_header_len = dev->hard_header_len + VLAN_HLEN;