]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: dsa: mxl862xx: reject DSA_PORT_TYPE_DSA
authorDaniel Golle <daniel@makrotopia.org>
Tue, 7 Apr 2026 17:30:27 +0000 (18:30 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 10 Apr 2026 23:03:44 +0000 (16:03 -0700)
DSA links aren't supported by the mxl862xx driver.

Instead of returning early from .port_setup when called for
DSA_PORT_TYPE_DSA ports rather return -EOPNOTSUPP and show an error
message.

The desired side-effect is that the framework will switch the port to
DSA_PORT_TYPE_UNUSED, so we can stop caring about DSA_PORT_TYPE_DSA in
all other places.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Link: https://patch.msgid.link/b686f3a22d8a6e7d470e7aa98da811a996a229b9.1775581804.git.daniel@makrotopia.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/mxl862xx/mxl862xx.c

index e4e16c7207630758692838e3a5600dfa6ed7e38b..9a9714c4859b1dc58bd2952cd0c12b959653b481 100644 (file)
@@ -544,10 +544,14 @@ static int mxl862xx_port_setup(struct dsa_switch *ds, int port)
 
        mxl862xx_port_fast_age(ds, port);
 
-       if (dsa_port_is_unused(dp) ||
-           dsa_port_is_dsa(dp))
+       if (dsa_port_is_unused(dp))
                return 0;
 
+       if (dsa_port_is_dsa(dp)) {
+               dev_err(ds->dev, "port %d: DSA links not supported\n", port);
+               return -EOPNOTSUPP;
+       }
+
        ret = mxl862xx_configure_sp_tag_proto(ds, port, is_cpu_port);
        if (ret)
                return ret;
@@ -591,7 +595,7 @@ static void mxl862xx_port_teardown(struct dsa_switch *ds, int port)
        struct mxl862xx_priv *priv = ds->priv;
        struct dsa_port *dp = dsa_to_port(ds, port);
 
-       if (dsa_port_is_unused(dp) || dsa_port_is_dsa(dp))
+       if (dsa_port_is_unused(dp))
                return;
 
        /* Prevent deferred host_flood_work from acting on stale state.