X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=datapath%2Fdatapath.c;h=940a58142dbef97ad0881fdfc308f6640122d361;hb=740bc6a4f2d70cb9c4d362895d26948820bdca79;hp=c48dc9dfb5f42dcbe84346f99f89a8a08510199a;hpb=6ce39213456b27257acbaf146398dce26d1466b9;p=openvswitch diff --git a/datapath/datapath.c b/datapath/datapath.c index c48dc9df..940a5814 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -51,6 +51,7 @@ #include "flow.h" #include "loop_counter.h" #include "table.h" +#include "vlan.h" #include "vport-internal_dev.h" int (*dp_ioctl_hook)(struct net_device *dev, struct ifreq *rq, int cmd); @@ -483,13 +484,9 @@ static int queue_control_packets(struct datapath *dp, struct sk_buff *skb, nskb = skb->next; skb->next = NULL; - if (vlan_tx_tag_present(skb)) { - skb = __vlan_put_tag(skb, vlan_tx_tag_get(skb)); - if (unlikely(!skb)) { - err = -ENOMEM; - goto err_kfree_skbs; - } - } + err = vlan_deaccel_tag(skb); + if (unlikely(err)) + goto err_kfree_skbs; len = sizeof(struct odp_header); len += nla_total_size(skb->len);