8021q: set hard_header_len when VLAN offload features are toggled
Toggling the vlan tx|rx hw offloads needs to set the hard_header_len as well otherwise we end up using LL_RESERVED_SPACE incorrectly. This results in pskb_expand_head() being used unnecessarily. Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Acked-by: Jesse Gross <jesse@nicira.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
58e998c6d2
commit
029f5fc31c
|
@ -334,6 +334,12 @@ static void vlan_transfer_features(struct net_device *dev,
|
||||||
vlandev->features &= ~dev->vlan_features;
|
vlandev->features &= ~dev->vlan_features;
|
||||||
vlandev->features |= dev->features & dev->vlan_features;
|
vlandev->features |= dev->features & dev->vlan_features;
|
||||||
vlandev->gso_max_size = dev->gso_max_size;
|
vlandev->gso_max_size = dev->gso_max_size;
|
||||||
|
|
||||||
|
if (dev->features & NETIF_F_HW_VLAN_TX)
|
||||||
|
vlandev->hard_header_len = dev->hard_header_len;
|
||||||
|
else
|
||||||
|
vlandev->hard_header_len = dev->hard_header_len + VLAN_HLEN;
|
||||||
|
|
||||||
#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)
|
#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)
|
||||||
vlandev->fcoe_ddp_xid = dev->fcoe_ddp_xid;
|
vlandev->fcoe_ddp_xid = dev->fcoe_ddp_xid;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue