From 303708cc8417959bbb7662fa52e0761a48bacbb1 Mon Sep 17 00:00:00 2001 From: Jesse Gross Date: Mon, 7 Feb 2011 15:57:09 -0800 Subject: [PATCH] datapath: Use vlan deacceleration function in upcall. vlan_deaccel_tag() was introduced to move a vlan tag from skb->vlan_tci to the packet but there was still an open coded variant when doing an upcall. vlan_deaccel_tag() also clears skb->vlan_tci which is not currently done but it makes no difference. Signed-off-by: Jesse Gross Acked-by: Ben Pfaff --- datapath/datapath.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/datapath/datapath.c b/datapath/datapath.c index c48dc9dfb..940a58142 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); -- 2.43.0