]> git.hungrycats.org Git - linux/commitdiff
[BRIDGE]: Propagate bridge internal MTU changes
authorStephen Hemminger <shemminger@osdl.org>
Thu, 29 Jul 2004 07:38:51 +0000 (00:38 -0700)
committerDavid S. Miller <davem@nuts.davemloft.net>
Thu, 29 Jul 2004 07:38:51 +0000 (00:38 -0700)
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>
net/bridge/br_if.c
net/bridge/br_notify.c
net/core/dev.c

index 092d45163644925006545ff796ae0ae0d1f2fee7..b81dee96015cae6bf3417d49df37d598250b9fae 100644 (file)
@@ -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;
index 5c88a71b85e3cf0af0b1a400a06f67f4b09de29d..dbc86ecbd244c1b66f726caa8fc97505708fea2a 100644 (file)
@@ -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:
index 3bead55e88a634840a6736fc8a6c7cb3918f7873..93a145c4d9ab651523b0d3e300ba7d62249a2548 100644 (file)
@@ -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