summaryrefslogtreecommitdiffhomepage
path: root/bridge.c
diff options
context:
space:
mode:
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: