Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 342075
b: refs/heads/master
c: 2ce297f
h: refs/heads/master
i:
  342073: ee33c85
  342071: 32c787a
v: v3
  • Loading branch information
Cong Wang authored and David S. Miller committed Dec 11, 2012
1 parent e8e9fcc commit c6b366c
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2925f6c0c7af32720dcbadc586463aeceb6baa22
refs/heads/master: 2ce297fc24d1f0b70c756d1f593e7a089a2d888d
6 changes: 2 additions & 4 deletions trunk/net/bridge/br_mdb.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,8 @@ static int br_mdb_dump(struct sk_buff *skb, struct netlink_callback *cb)

rcu_read_lock();

/* TODO: in case of rehashing, we need to check
* consistency for dumping.
*/
cb->seq = net->dev_base_seq;
/* In theory this could be wrapped to 0... */
cb->seq = net->dev_base_seq + br_mdb_rehash_seq;

for_each_netdev_rcu(net, dev) {
if (dev->priv_flags & IFF_EBRIDGE) {
Expand Down
2 changes: 2 additions & 0 deletions trunk/net/bridge/br_multicast.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
rcu_dereference_protected(X, lockdep_is_held(&br->multicast_lock))

static void br_multicast_start_querier(struct net_bridge *br);
unsigned int br_mdb_rehash_seq;

#if IS_ENABLED(CONFIG_IPV6)
static inline int ipv6_is_transient_multicast(const struct in6_addr *addr)
Expand Down Expand Up @@ -338,6 +339,7 @@ static int br_mdb_rehash(struct net_bridge_mdb_htable __rcu **mdbp, int max,
return err;
}

br_mdb_rehash_seq++;
call_rcu_bh(&mdb->rcu, br_mdb_free);

out:
Expand Down
1 change: 1 addition & 0 deletions trunk/net/bridge/br_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@ extern int br_ioctl_deviceless_stub(struct net *net, unsigned int cmd, void __us

/* br_multicast.c */
#ifdef CONFIG_BRIDGE_IGMP_SNOOPING
extern unsigned int br_mdb_rehash_seq;
extern int br_multicast_rcv(struct net_bridge *br,
struct net_bridge_port *port,
struct sk_buff *skb);
Expand Down

0 comments on commit c6b366c

Please sign in to comment.