summaryrefslogtreecommitdiff
path: root/bridge.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2021-06-23 10:01:41 +0200
committerFelix Fietkau <nbd@nbd.name>2021-06-23 10:01:42 +0200
commit4e92ea74273f7d569f2be67066f9ebd33cf2ecad (patch)
tree417c6679b2a3cb5353f3f7ec9e3464a7d83e2549 /bridge.c
parentdb0fa24e1c17dbeadc119ba9fc93805fa962eed7 (diff)
downloadnetifd-4e92ea74273f7d569f2be67066f9ebd33cf2ecad.tar.gz
bridge: bring up pre-existing vlans on hotplug as well
When adding a member to an existing VLAN, it needs to be updated as well Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'bridge.c')
-rw-r--r--bridge.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/bridge.c b/bridge.c
index 925cfe4..4f3fe35 100644
--- a/bridge.c
+++ b/bridge.c
@@ -704,11 +704,6 @@ bridge_hotplug_get_vlan(struct bridge_state *bst, unsigned int vid)
INIT_LIST_HEAD(&vlan->hotplug_ports);
vlist_add(&bst->dev.vlans, &vlan->node, &vlan->vid);
vlan->node.version = -1;
- if (!vlan->pending)
- return vlan;
-
- vlan->pending = false;
- bridge_set_vlan_state(bst, vlan, true);
return vlan;
}
@@ -754,6 +749,11 @@ bridge_hotplug_set_member_vlans(struct bridge_state *bst, struct blob_attr *vlan
if (!vlan)
continue;
+ if (vlan->pending) {
+ vlan->pending = false;
+ bridge_set_vlan_state(bst, vlan, true);
+ }
+
if (end && *end) {
if (*end != ':')
continue;