net/vlan: introduce __vlan_hwaccel_clear_tag() helper
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>
Wed, 7 Nov 2018 17:07:02 +0000 (18:07 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Nov 2018 06:41:19 +0000 (22:41 -0800)
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/if_vlan.h

index 83ea4df6ab8166e759a9cc6f9a302241d0a13659..c438fa0a1c6ae74fb6c0ffc50cc050c8241a60ae 100644 (file)
@@ -461,6 +461,17 @@ static inline struct sk_buff *vlan_insert_tag_set_proto(struct sk_buff *skb,
        return skb;
 }
 
+/**
+ * __vlan_hwaccel_clear_tag - clear hardware accelerated VLAN info
+ * @skb: skbuff to clear
+ *
+ * Clears the VLAN information from @skb
+ */
+static inline void __vlan_hwaccel_clear_tag(struct sk_buff *skb)
+{
+       skb->vlan_tci = 0;
+}
+
 /*
  * __vlan_hwaccel_push_inside - pushes vlan tag to the payload
  * @skb: skbuff to tag
@@ -475,7 +486,7 @@ static inline struct sk_buff *__vlan_hwaccel_push_inside(struct sk_buff *skb)
        skb = vlan_insert_tag_set_proto(skb, skb->vlan_proto,
                                        skb_vlan_tag_get(skb));
        if (likely(skb))
-               skb->vlan_tci = 0;
+               __vlan_hwaccel_clear_tag(skb);
        return skb;
 }