net: dsa: return after mdb prepare phase

The current code does not return after successfully preparing the MDB
addition on every ports member of a multicast group. Fix this.

Fixes: a1a6b7ea7f2d ("net: dsa: add cross-chip multicast support")
Reported-by: Egil Hjelmeland <>
Signed-off-by: Vivien Didelot <>
Reviewed-by: Andrew Lunn <>
Signed-off-by: David S. Miller <>
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index e6c06aa..73746fa 100644
--- a/net/dsa/switch.c
+++ b/net/dsa/switch.c
@@ -133,6 +133,8 @@
 			if (err)
 				return err;
+		return 0;
 	for_each_set_bit(port, group, ds->num_ports)