From 7642eaba383869cab997d2e7ffdb1b58fd536e29 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 20 Nov 2023 18:35:49 +0100 Subject: [PATCH] system-linux: fix bogus debug error messages on adding bridge members Signed-off-by: Felix Fietkau --- system-linux.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/system-linux.c b/system-linux.c index cc1b5e9..96cc993 100644 --- a/system-linux.c +++ b/system-linux.c @@ -948,16 +948,19 @@ int system_bridge_addif(struct device *bridge, struct device *dev) int tries = 0; int ret; -retry: - ret = 0; - oldbr = system_get_bridge(dev->ifname, dev_buf, sizeof(dev_buf)); - if (!oldbr || strcmp(oldbr, bridge->ifname) != 0) { + + for (tries = 0; tries < 3; tries++) { + ret = 0; + oldbr = system_get_bridge(dev->ifname, dev_buf, sizeof(dev_buf)); + if (oldbr && !strcmp(oldbr, bridge->ifname)) + break; + ret = system_bridge_if(bridge->ifname, dev, SIOCBRADDIF, NULL); - tries++; + if (!ret) + break; + D(SYSTEM, "Failed to add device '%s' to bridge '%s' (tries=%d): %s\n", dev->ifname, bridge->ifname, tries, strerror(errno)); - if (tries <= 3) - goto retry; } if (dev->wireless) -- 2.30.2