aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2004-07-29 00:38:51 -0700
committerDavid S. Miller <davem@nuts.davemloft.net>2004-07-29 00:38:51 -0700
commit431ce3dd38e28de324416cef88fd0690c548e97c (patch)
tree8e827bc4504e51bffe1c46ba2358659cec5df047 /net
parente953c5c11e19f3f94501af36508e1ef6cc1a2d99 (diff)
downloadhistory-431ce3dd38e28de324416cef88fd0690c548e97c.tar.gz
[BRIDGE]: Propagate bridge internal MTU changes
Need to propagate MTU changes that the bridge does to it's pseudo interface up to others. There ends up being a double call to br_min_mtu() but that's harmless. Cleans up the EXPORT_SYMBOLS including dev_change_flags which is used by vlan. Shouldn't be basing exports on kernel config options like this. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@redhat.com>
Diffstat (limited to 'net')
-rw-r--r--net/bridge/br_if.c3
-rw-r--r--net/bridge/br_notify.c2
-rw-r--r--net/core/dev.c7
3 files changed, 6 insertions, 6 deletions
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 092d4516364492..b81dee96015cae 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -295,6 +295,7 @@ int br_del_bridge(const char *name)
return ret;
}
+/* Mtu of the bridge pseudo-device 1500 or the minimum of the ports */
int br_min_mtu(const struct net_bridge *br)
{
const struct net_bridge_port *p;
@@ -347,7 +348,7 @@ int br_add_if(struct net_bridge *br, struct net_device *dev)
br_stp_enable_port(p);
spin_unlock_bh(&br->lock);
- br->dev->mtu = br_min_mtu(br);
+ dev_set_mtu(br->dev, br_min_mtu(br));
}
return err;
diff --git a/net/bridge/br_notify.c b/net/bridge/br_notify.c
index 5c88a71b85e3cf..dbc86ecbd244c1 100644
--- a/net/bridge/br_notify.c
+++ b/net/bridge/br_notify.c
@@ -48,7 +48,7 @@ static int br_device_event(struct notifier_block *unused, unsigned long event, v
break;
case NETDEV_CHANGEMTU:
- br->dev->mtu = br_min_mtu(br);
+ dev_set_mtu(br->dev, br_min_mtu(br));
break;
case NETDEV_DOWN:
diff --git a/net/core/dev.c b/net/core/dev.c
index 3bead55e88a634..93a145c4d9ab65 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3431,6 +3431,8 @@ EXPORT_SYMBOL(dev_queue_xmit_nit);
EXPORT_SYMBOL(dev_remove_pack);
EXPORT_SYMBOL(dev_set_allmulti);
EXPORT_SYMBOL(dev_set_promiscuity);
+EXPORT_SYMBOL(dev_change_flags);
+EXPORT_SYMBOL(dev_set_mtu);
EXPORT_SYMBOL(free_netdev);
EXPORT_SYMBOL(netdev_boot_setup_check);
EXPORT_SYMBOL(netdev_set_master);
@@ -3448,10 +3450,7 @@ EXPORT_SYMBOL(unregister_netdevice_notifier);
#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
EXPORT_SYMBOL(br_handle_frame_hook);
#endif
-/* for 801q VLAN support */
-#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
-EXPORT_SYMBOL(dev_change_flags);
-#endif
+
#ifdef CONFIG_KMOD
EXPORT_SYMBOL(dev_load);
#endif