diff options
Diffstat (limited to 'net/8021q/vlan_core.c')
-rw-r--r-- | net/8021q/vlan_core.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c index 8ca533c95de0..add69d0fd99d 100644 --- a/net/8021q/vlan_core.c +++ b/net/8021q/vlan_core.c | |||
@@ -105,7 +105,6 @@ static struct sk_buff *vlan_reorder_header(struct sk_buff *skb) | |||
105 | return NULL; | 105 | return NULL; |
106 | memmove(skb->data - ETH_HLEN, skb->data - VLAN_ETH_HLEN, 2 * ETH_ALEN); | 106 | memmove(skb->data - ETH_HLEN, skb->data - VLAN_ETH_HLEN, 2 * ETH_ALEN); |
107 | skb->mac_header += VLAN_HLEN; | 107 | skb->mac_header += VLAN_HLEN; |
108 | skb_reset_mac_len(skb); | ||
109 | return skb; | 108 | return skb; |
110 | } | 109 | } |
111 | 110 | ||
@@ -139,6 +138,8 @@ struct sk_buff *vlan_untag(struct sk_buff *skb) | |||
139 | 138 | ||
140 | skb_reset_network_header(skb); | 139 | skb_reset_network_header(skb); |
141 | skb_reset_transport_header(skb); | 140 | skb_reset_transport_header(skb); |
141 | skb_reset_mac_len(skb); | ||
142 | |||
142 | return skb; | 143 | return skb; |
143 | 144 | ||
144 | err_free: | 145 | err_free: |
@@ -368,3 +369,9 @@ void vlan_vids_del_by_dev(struct net_device *dev, | |||
368 | vlan_vid_del(dev, vid_info->vid); | 369 | vlan_vid_del(dev, vid_info->vid); |
369 | } | 370 | } |
370 | EXPORT_SYMBOL(vlan_vids_del_by_dev); | 371 | EXPORT_SYMBOL(vlan_vids_del_by_dev); |
372 | |||
373 | bool vlan_uses_dev(const struct net_device *dev) | ||
374 | { | ||
375 | return rtnl_dereference(dev->vlan_info) ? true : false; | ||
376 | } | ||
377 | EXPORT_SYMBOL(vlan_uses_dev); | ||