diff options
author | Vlad Yasevich <vyasevic@redhat.com> | 2013-10-28 15:45:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-29 17:40:08 -0400 |
commit | 06499098a02b9ed906a7b6060f2c60fb813918d4 (patch) | |
tree | c111ac98dd6790a2d2c04cca7a37d55abbff2b2c /net/bridge/br_private.h | |
parent | 911aeb108493caa45b4ca08313ee0600e943cd2b (diff) |
bridge: pass correct vlan id to multicast code
Currently multicast code attempts to extrace the vlan id from
the skb even when vlan filtering is disabled. This can lead
to mdb entries being created with the wrong vlan id.
Pass the already extracted vlan id to the multicast
filtering code to make the correct id is used in
creation as well as lookup.
Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
Acked-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r-- | net/bridge/br_private.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index e14c33b42f75..2e8244efb262 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h | |||
@@ -451,7 +451,8 @@ extern int br_ioctl_deviceless_stub(struct net *net, unsigned int cmd, void __us | |||
451 | extern unsigned int br_mdb_rehash_seq; | 451 | extern unsigned int br_mdb_rehash_seq; |
452 | extern int br_multicast_rcv(struct net_bridge *br, | 452 | extern int br_multicast_rcv(struct net_bridge *br, |
453 | struct net_bridge_port *port, | 453 | struct net_bridge_port *port, |
454 | struct sk_buff *skb); | 454 | struct sk_buff *skb, |
455 | u16 vid); | ||
455 | extern struct net_bridge_mdb_entry *br_mdb_get(struct net_bridge *br, | 456 | extern struct net_bridge_mdb_entry *br_mdb_get(struct net_bridge *br, |
456 | struct sk_buff *skb, u16 vid); | 457 | struct sk_buff *skb, u16 vid); |
457 | extern void br_multicast_add_port(struct net_bridge_port *port); | 458 | extern void br_multicast_add_port(struct net_bridge_port *port); |
@@ -522,7 +523,8 @@ static inline bool br_multicast_querier_exists(struct net_bridge *br, | |||
522 | #else | 523 | #else |
523 | static inline int br_multicast_rcv(struct net_bridge *br, | 524 | static inline int br_multicast_rcv(struct net_bridge *br, |
524 | struct net_bridge_port *port, | 525 | struct net_bridge_port *port, |
525 | struct sk_buff *skb) | 526 | struct sk_buff *skb, |
527 | u16 vid) | ||
526 | { | 528 | { |
527 | return 0; | 529 | return 0; |
528 | } | 530 | } |