Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net
This commit is contained in:
@@ -417,6 +417,7 @@ put_back:
|
||||
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)
|
||||
@@ -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;
|
||||
|
@@ -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 */
|
||||
@@ -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:
|
||||
|
@@ -1198,7 +1198,8 @@ ebt_register_table(struct net *net, const struct ebt_table *input_table)
|
||||
|
||||
if (table->check && table->check(newinfo, table->valid_hooks)) {
|
||||
BUGPRINT("The table doesn't like its own initial data, lol\n");
|
||||
return ERR_PTR(-EINVAL);
|
||||
ret = -EINVAL;
|
||||
goto free_chainstack;
|
||||
}
|
||||
|
||||
table->private = newinfo;
|
||||
|
Reference in New Issue
Block a user