Re: [PATCH net-next] net: dsa: realtek: rtl8366rb: Fix up port isolation
From: Luiz Angelo Daros de Luca <hidden>
Date: 2026-07-11 18:03:22
Hi Linus, Em sáb., 11 de jul. de 2026, 06:43, Linus Walleij [off-list ref] escreveu:
quoted hunk ↗ jump to hunk
Sashiko reports that we incorrectly disable isolation in the setup loop while what we want to do is to enable it. Just delete this setting: the next loop in the setup code, over the user ports, isolate all the ports from each other, so only the CPU port can see them. Fix up the comments so it is clear what is going on, including a missing word in the helper function. Reported-by: Paolo Abeni <pabeni@redhat.com> Closes: https://sashiko.dev/#/patchset/20260630-rtl8366rb-improvements-v2-0-05eb9d6a37f5%40kernel.org Signed-off-by: Linus Walleij <linusw@kernel.org> --- drivers/net/dsa/realtek/rtl8366rb.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)diff --git a/drivers/net/dsa/realtek/rtl8366rb.c b/drivers/net/dsa/realtek/rtl8366rb.c index d2fa8ff6a5d0..e615814049c1 100644 --- a/drivers/net/dsa/realtek/rtl8366rb.c +++ b/drivers/net/dsa/realtek/rtl8366rb.c@@ -794,8 +794,8 @@ static int rtl8366rb_setup_all_leds_off(struct realtek_priv *priv) static int rtl8366rb_port_set_isolation(struct realtek_priv *priv, int port, u32 mask) { - /* Bit 0 enables isolation so set this if we enable isolation - * any of the ports an clear it if we disable on all of them. + /* Bit 0 enables isolation so set this if we enable isolation on + * any of the ports and clear it if we disable on all of them. */ if (mask) mask = RTL8366RB_PORT_ISO_PORTS(mask) | RTL8366RB_PORT_ISO_EN;@@ -950,11 +950,6 @@ static int rtl8366rb_setup(struct dsa_switch *ds) */ rtl8366rb_port_stp_state_set(ds, dp->index, BR_STATE_DISABLED); - /* Start with all ports completely isolated */ - ret = rtl8366rb_port_set_isolation(priv, dp->index, 0); - if (ret) - return ret; -
If you don't isolate the ports, what is the default port status? Wouldn't it allow unused ports to talk with other ports and, at least, send packets to other ports? I think that it will not leak packets as the .port_enable/.port_disable is present and all other ports will be isolated from sending traffic to unused ports. Anyway, it would be cleaner if all unused ports are really isolated.
quoted hunk ↗ jump to hunk
/* Disable learning */ ret = rtl8366rb_port_set_learning(priv, dp->index, false); if (ret)@@ -974,7 +969,7 @@ static int rtl8366rb_setup(struct dsa_switch *ds) if (!dsa_port_is_user(dp)) continue; - /* Forward only to the CPU */ + /* Forward only to the CPU, isolate from all other ports */ ret = rtl8366rb_port_set_isolation(priv, dp->index, upports_mask); if (ret) return ret;--- base-commit: 23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9 change-id: 20260702-rtl8366rb-fixes-a93f831ec2a4 Best regards, -- Linus Walleij [off-list ref]
Regards, Luiz