[PATCH 2/6] realtek: don't return 0 from rtl83xx_mc_group_alloc on failure

Jan Hoffmann jan at 3e8.eu
Fri Mar 3 13:48:42 PST 2023


This function returns the index of the allocated multicast group entry,
so the return value should be negative when no entry was allocated.

Fixes: cde31976e375 ("realtek: Add support for Layer 2 Multicast")
Signed-off-by: Jan Hoffmann <jan at 3e8.eu>
---

I'm not entirely sure about this patch. Seen individually, changing the 
return code is obviously the right thing to do. However, this entire 
branch is effectively dead code at the moment, as the only caller 
already performs the same check before.

That check should probably be removed everywhere, as it doesn't really 
make sense to ignore mdb entries for LAG members. But I haven't tested 
that yet, because link aggregation is totally broken right now. So a 
proper cleanup will have to wait until link aggregation itself is fixed 
(which I'm currently working on).

 target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c | 2 +-
 target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
index fee63c36faa1..695453a75862 100644
--- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
+++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
@@ -983,7 +983,7 @@ static int rtl83xx_mc_group_alloc(struct rtl838x_switch_priv *priv, int port)
 
 	if (priv->is_lagmember[port]) {
 		pr_info("%s: %d is lag slave. ignore\n", __func__, port);
-		return 0;
+		return -1;
 	}
 
 	set_bit(mc_group, priv->mc_group_bm);
diff --git a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c
index f9980ccacee1..09fdc38b55e7 100644
--- a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c
+++ b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c
@@ -970,7 +970,7 @@ static int rtl83xx_mc_group_alloc(struct rtl838x_switch_priv *priv, int port)
 
 	if (priv->is_lagmember[port]) {
 		pr_info("%s: %d is lag slave. ignore\n", __func__, port);
-		return 0;
+		return -1;
 	}
 
 	set_bit(mc_group, priv->mc_group_bm);
-- 
2.39.1




More information about the openwrt-devel mailing list