[ovs-dev] [PATCH 2/2] datapath: Use vlan deacceleration function in upcall.

Jesse Gross jesse at nicira.com
Tue Feb 8 00:01:07 UTC 2011


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 <jesse at nicira.com>
---
 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





More information about the dev mailing list