bridge: Fix handling stacked vlan tags
authorToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Thu, 27 Mar 2014 12:46:56 +0000 (21:46 +0900)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Mar 2014 20:33:09 +0000 (16:33 -0400)
commit99b192da9c99284ad3374132e56f66995cadc6b4
tree5d76b7b88909e15e5126fb250b3ad03d6ecb0d15
parent12464bb8de021a01fa7ec9299c273c247df7f198
bridge: Fix handling stacked vlan tags

If a bridge with vlan_filtering enabled receives frames with stacked
vlan tags, i.e., they have two vlan tags, br_vlan_untag() strips not
only the outer tag but also the inner tag.

br_vlan_untag() is called only from br_handle_vlan(), and in this case,
it is enough to set skb->vlan_tci to 0 here, because vlan_tci has already
been set before calling br_handle_vlan().

Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Acked-by: Vlad Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_vlan.c