vlan_deaccel_tag() was introduced to move a vlan tag from skb->vlan_tci to the packet but there was still an open coded varient when doing an upcall.
Signed-off-by: Jesse Gross <[email protected]> --- datapath/datapath.c | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-) diff --git a/datapath/datapath.c b/datapath/datapath.c index c48dc9d..940a581 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); -- 1.7.1 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev_openvswitch.org
