fix warning
[sliver-openvswitch.git] / datapath / vlan.h
index 5d3573b..aee5551 100644 (file)
@@ -89,10 +89,15 @@ static inline int vlan_deaccel_tag(struct sk_buff *skb)
        if (!vlan_tx_tag_present(skb))
                return 0;
 
-       skb = __vlan_put_tag(skb, vlan_tx_tag_get(skb));
+       skb = __vlan_put_tag(skb, skb->vlan_proto, vlan_tx_tag_get(skb));
        if (unlikely(!skb))
                return -ENOMEM;
 
+       if (get_ip_summed(skb) == OVS_CSUM_COMPLETE)
+               skb->csum = csum_add(skb->csum,
+                                    csum_partial(skb->data + (2 * ETH_ALEN),
+                                                 VLAN_HLEN, 0));
+
        vlan_set_tci(skb, 0);
        return 0;
 }