summaryrefslogtreecommitdiff
path: root/bridge.c
diff options
context:
space:
mode:
authorHans Dedecker <dedeckeh@gmail.com>2014-03-10 16:27:51 +0100
committerFelix Fietkau <nbd@openwrt.org>2014-03-11 10:22:57 +0100
commit02021e2069d0ee315b0ff263b6c010bef63b879c (patch)
tree73d096226852fa43cd41963a6d93627a3171d18f /bridge.c
parent8aabd47c6f4fefc8fbd70c34a738f7c26956d8cd (diff)
downloadnetifd-02021e2069d0ee315b0ff263b6c010bef63b879c.tar.gz
netifd: Fix bridge MTU setting when a bridge member is added
Reapply bridge mtu setting as adding a bridge member will override the bridge mtu in the kernel Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Diffstat (limited to 'bridge.c')
-rw-r--r--bridge.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/bridge.c b/bridge.c
index 7bd1cf0..147fe0a 100644
--- a/bridge.c
+++ b/bridge.c
@@ -233,8 +233,15 @@ bridge_member_cb(struct device_user *dev, enum device_event ev)
if (bst->n_present == 1)
device_set_present(&bst->dev, true);
- if (bst->dev.active)
- bridge_enable_member(bm);
+ if (bst->dev.active && !bridge_enable_member(bm)) {
+ /*
+ * Adding a bridge member can overwrite the bridge mtu
+ * in the kernel, apply the bridge settings in case the
+ * bridge mtu is set
+ */
+ system_if_apply_settings(&bst->dev, &bst->dev.settings,
+ DEV_OPT_MTU);
+ }
break;
case DEV_EVENT_REMOVE: