Commit 168d40ee authored by stephen hemminger's avatar stephen hemminger Committed by David S. Miller

bridge: multicast flood

Fix unsafe usage of RCU. Would never work on Alpha SMP because
of lack of rcu_dereference()
Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7e80c124
...@@ -216,7 +216,7 @@ static void br_multicast_flood(struct net_bridge_mdb_entry *mdst, ...@@ -216,7 +216,7 @@ static void br_multicast_flood(struct net_bridge_mdb_entry *mdst,
prev = NULL; prev = NULL;
rp = br->router_list.first; rp = rcu_dereference(br->router_list.first);
p = mdst ? mdst->ports : NULL; p = mdst ? mdst->ports : NULL;
while (p || rp) { while (p || rp) {
lport = p ? p->port : NULL; lport = p ? p->port : NULL;
...@@ -233,7 +233,7 @@ static void br_multicast_flood(struct net_bridge_mdb_entry *mdst, ...@@ -233,7 +233,7 @@ static void br_multicast_flood(struct net_bridge_mdb_entry *mdst,
if ((unsigned long)lport >= (unsigned long)port) if ((unsigned long)lport >= (unsigned long)port)
p = p->next; p = p->next;
if ((unsigned long)rport >= (unsigned long)port) if ((unsigned long)rport >= (unsigned long)port)
rp = rp->next; rp = rcu_dereference(rp->next);
} }
if (!prev) if (!prev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment