bridge: Fix the way the PVID is referenced
authorToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Wed, 16 Oct 2013 08:07:15 +0000 (17:07 +0900)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Oct 2013 20:02:53 +0000 (16:02 -0400)
commitd1c6c708c4da9d104e0b7c116654cb449bff9b5f
treea5e02f92b9491d1eb7be0b6b52b78ff3af16484c
parentb90356ce17c2b199cd55530cb9c3cfabe18dbdc3
bridge: Fix the way the PVID is referenced

We are using the VLAN_TAG_PRESENT bit to detect whether the PVID is
set or not at br_get_pvid(), while we don't care about the bit in
adding/deleting the PVID, which makes it impossible to forward any
incomming untagged frame with vlan_filtering enabled.

Since vid 0 cannot be used for the PVID, we can use vid 0 to indicate
that the PVID is not set, which is slightly more efficient than using
the VLAN_TAG_PRESENT.

Fix the problem by getting rid of using the VLAN_TAG_PRESENT.

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