Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 262776
b: refs/heads/master
c: 9be6dd6
h: refs/heads/master
v: v3
  • Loading branch information
Andrei Warkentin authored and David S. Miller committed Aug 10, 2011
1 parent 477e366 commit 0cedfab
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 3 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: 8028837d71ba9904b17281b40f94b93e947fbe38
refs/heads/master: 9be6dd6510fde5cfa2ab73f238754d38ee6797bc
6 changes: 5 additions & 1 deletion trunk/net/bridge/br_if.c
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,7 @@ int br_add_if(struct net_bridge *br, struct net_device *dev)
int br_del_if(struct net_bridge *br, struct net_device *dev)
{
struct net_bridge_port *p;
bool changed_addr;

p = br_port_get_rtnl(dev);
if (!p || p->br != br)
Expand All @@ -425,9 +426,12 @@ int br_del_if(struct net_bridge *br, struct net_device *dev)
del_nbp(p);

spin_lock_bh(&br->lock);
br_stp_recalculate_bridge_id(br);
changed_addr = br_stp_recalculate_bridge_id(br);
spin_unlock_bh(&br->lock);

if (changed_addr)
call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev);

netdev_update_features(br->dev);

return 0;
Expand Down
7 changes: 6 additions & 1 deletion trunk/net/bridge/br_notify.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ static int br_device_event(struct notifier_block *unused, unsigned long event, v
struct net_device *dev = ptr;
struct net_bridge_port *p;
struct net_bridge *br;
bool changed_addr;
int err;

/* register of bridge completed, add sysfs entries */
Expand All @@ -57,8 +58,12 @@ static int br_device_event(struct notifier_block *unused, unsigned long event, v
case NETDEV_CHANGEADDR:
spin_lock_bh(&br->lock);
br_fdb_changeaddr(p, dev->dev_addr);
br_stp_recalculate_bridge_id(br);
changed_addr = br_stp_recalculate_bridge_id(br);
spin_unlock_bh(&br->lock);

if (changed_addr)
call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev);

break;

case NETDEV_CHANGE:
Expand Down

0 comments on commit 0cedfab

Please sign in to comment.