aboutsummaryrefslogtreecommitdiffstats
path: root/net/8021q/vlan_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/8021q/vlan_core.c')
-rw-r--r--net/8021q/vlan_core.c9
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
144err_free: 145err_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}
370EXPORT_SYMBOL(vlan_vids_del_by_dev); 371EXPORT_SYMBOL(vlan_vids_del_by_dev);
372
373bool vlan_uses_dev(const struct net_device *dev)
374{
375 return rtnl_dereference(dev->vlan_info) ? true : false;
376}
377EXPORT_SYMBOL(vlan_uses_dev);