@@ -415,9 +415,7 @@ bridge_enable_member(struct bridge_member *bm)
bm->dev.dev->settings.flags |= DEV_OPT_IPV6;
}
- ret = device_claim(&bm->dev);
- if (ret < 0)
- goto error;
+ device_claim(&bm->dev);
dev = bm->dev.dev;
if (dev->settings.auth && !dev->auth_status)
@@ -429,7 +427,6 @@ bridge_enable_member(struct bridge_member *bm)
ret = system_bridge_addif(&bst->dev, bm->dev.dev);
if (ret < 0) {
D(DEVICE, "Bridge device %s could not be added\n", bm->dev.dev->ifname);
- goto error;
}
bm->active = true;
When netifd processes device wlanX, device wlanX may not exist, or device wlanX has been in bridge BR-LAN in advance, which will result in bridge addition failure. A way to reproduce the problem: config device option name 'br-lan' option type 'bridge' list ports 'lan1' list ports 'lan2' list ports 'lan3' list ports 'lan4' list ports 'lan5' list ports 'wlan0' list ports 'wlan0-1' list ports 'wlan1' list ports 'wlan1-1' config bridge-vlan option device 'br-lan' option untagged '1' option local '1' option vlan '4094' list ports 'lan4' list ports 'lan5' config bridge-vlan option device 'br-lan' option vlan '10' list ports 'lan1:u*' list ports 'lan2:u*' list ports 'wlan1:u*' list ports 'wlan1-1:u*' list ports 'lan5:t' config bridge-vlan option device 'br-lan' option vlan '200' list ports 'wlan0:u*' list ports 'wlan0-1:u*' list ports 'lan3:u*' list ports 'lan5:t' root@OpenWrt:/# bridge vlan port vlan-id lan1 10 PVID Egress Untagged ...... wlan0 200 PVID Egress Untagged wlan1 10 PVID Egress Untagged wlan0-1 200 PVID Egress Untagged wlan1-1 10 PVID Egress Untagged root@OpenWrt:/# wifi down ; sleep 10 ; wifi root@OpenWrt:/# bridge vlan port vlan-id lan1 10 PVID Egress Untagged ...... wlan0 1 PVID Egress Untagged wlan1 1 PVID Egress Untagged wlan0-1 200 PVID Egress Untagged Signed-off-by: LiXiong Liu <lxliu@ikuai8.com> --- bridge.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)