From 2d4e186d3e2d6c4ae85e760a261ca2f8fce95464 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 8 Dec 2010 15:15:49 -0800 Subject: [PATCH] updated version of review-2.6.36/vlan-avoid-hwaccel-vlan-packets-when-vid-not-used.patch used --- ...accel-vlan-packets-when-vid-not-used.patch | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/review-2.6.36/vlan-avoid-hwaccel-vlan-packets-when-vid-not-used.patch b/review-2.6.36/vlan-avoid-hwaccel-vlan-packets-when-vid-not-used.patch index 15f45e681c6..03207313735 100644 --- a/review-2.6.36/vlan-avoid-hwaccel-vlan-packets-when-vid-not-used.patch +++ b/review-2.6.36/vlan-avoid-hwaccel-vlan-packets-when-vid-not-used.patch @@ -30,8 +30,8 @@ Signed-off-by: Greg Kroah-Hartman --- net/8021q/vlan_core.c | 3 +++ - net/core/dev.c | 13 +++++++++++++ - 2 files changed, 16 insertions(+) + net/core/dev.c | 10 ++++++++++ + 2 files changed, 13 insertions(+) --- a/net/8021q/vlan_core.c +++ b/net/8021q/vlan_core.c @@ -47,23 +47,27 @@ Signed-off-by: Greg Kroah-Hartman --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -2891,6 +2891,19 @@ static int __netif_receive_skb(struct sk +@@ -2891,6 +2891,15 @@ static int __netif_receive_skb(struct sk ncls: #endif + /* If we got this far with a hardware accelerated VLAN tag, it means + * that we were put in promiscuous mode but nobody is interested in -+ * this vid. Drop the packet now to prevent it from getting propagated ++ * this vid. Drop the packet now to prevent it from getting propagated + * to other parts of the stack that won't know how to deal with packets + * tagged in this manner. + */ -+ if (unlikely(vlan_tx_tag_present(skb))) { -+ if (pt_prev) -+ ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev); -+ kfree_skb(skb); -+ goto out; -+ } ++ if (unlikely(vlan_tx_tag_present(skb))) ++ goto bypass; + /* Handle special case of bridge or macvlan */ rx_handler = rcu_dereference(skb->dev->rx_handler); if (rx_handler) { +@@ -2927,6 +2936,7 @@ ncls: + } + } + ++bypass: + if (pt_prev) { + ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev); + } else { -- 2.47.3