diff options
Diffstat (limited to 'net/bridge/br_notify.c')
-rw-r--r-- | net/bridge/br_notify.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/net/bridge/br_notify.c b/net/bridge/br_notify.c index 7d337c9b6082..6545ee9591d1 100644 --- a/net/bridge/br_notify.c +++ b/net/bridge/br_notify.c | |||
@@ -36,6 +36,12 @@ static int br_device_event(struct notifier_block *unused, unsigned long event, v | |||
36 | struct net_bridge *br; | 36 | struct net_bridge *br; |
37 | int err; | 37 | int err; |
38 | 38 | ||
39 | /* register of bridge completed, add sysfs entries */ | ||
40 | if ((dev->priv_flags & IFF_EBRIDGE) && event == NETDEV_REGISTER) { | ||
41 | br_sysfs_addbr(dev); | ||
42 | return NOTIFY_DONE; | ||
43 | } | ||
44 | |||
39 | /* not a port of a bridge */ | 45 | /* not a port of a bridge */ |
40 | p = br_port_get_rtnl(dev); | 46 | p = br_port_get_rtnl(dev); |
41 | if (!p) | 47 | if (!p) |
@@ -60,10 +66,7 @@ static int br_device_event(struct notifier_block *unused, unsigned long event, v | |||
60 | break; | 66 | break; |
61 | 67 | ||
62 | case NETDEV_FEAT_CHANGE: | 68 | case NETDEV_FEAT_CHANGE: |
63 | spin_lock_bh(&br->lock); | 69 | netdev_update_features(br->dev); |
64 | if (netif_running(br->dev)) | ||
65 | br_features_recompute(br); | ||
66 | spin_unlock_bh(&br->lock); | ||
67 | break; | 70 | break; |
68 | 71 | ||
69 | case NETDEV_DOWN: | 72 | case NETDEV_DOWN: |