summaryrefslogtreecommitdiffstats
path: root/net/bridge/br_notify.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2005-05-29 14:15:17 -0700
committerDavid S. Miller <davem@davemloft.net>2005-05-29 14:15:17 -0700
commit81d35307dd468b92fe8c58797abb13c62e3e64dd (patch)
tree6afaae630386eebc5385d2c98c0e702940d187e5 /net/bridge/br_notify.c
parent81e8157583c559c27aac75c708d40a35f563d734 (diff)
downloadlinux-81d35307dd468b92fe8c58797abb13c62e3e64dd.tar.gz
linux-81d35307dd468b92fe8c58797abb13c62e3e64dd.tar.bz2
linux-81d35307dd468b92fe8c58797abb13c62e3e64dd.zip
[BRIDGE]: set features based on enslaved devices
Make features of the bridge pseudo-device be a subset of the underlying devices. Motivated by Xen and others who use bridging to do failover. Signed-off-by: Catalin BOIE <catab at umrella.ro> Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_notify.c')
-rw-r--r--net/bridge/br_notify.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/bridge/br_notify.c b/net/bridge/br_notify.c
index f8fb49e34764..917311c6828b 100644
--- a/net/bridge/br_notify.c
+++ b/net/bridge/br_notify.c
@@ -65,6 +65,15 @@ static int br_device_event(struct notifier_block *unused, unsigned long event, v
}
break;
+ case NETDEV_FEAT_CHANGE:
+ if (br->dev->flags & IFF_UP)
+ br_features_recompute(br);
+
+ /* could do recursive feature change notification
+ * but who would care??
+ */
+ break;
+
case NETDEV_DOWN:
if (br->dev->flags & IFF_UP)
br_stp_disable_port(p);