]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
mlxsw: spectrum: Move max_width check up before count check
authorJiri Pirko <jiri@mellanox.com>
Thu, 31 Oct 2019 09:42:09 +0000 (11:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 31 Oct 2019 17:54:46 +0000 (10:54 -0700)
The fact that the port cannot be split further should be checked before
checking the count, so move it.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Reviewed-by: Shalom Toledo <shalomt@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum.c

index 149b2cc2b4fd675aa5b105242cd7ec1d60c42e66..e0111e0a1a35180e7f47ab711a6e22f26fad36c8 100644 (file)
@@ -4128,12 +4128,6 @@ static int mlxsw_sp_port_split(struct mlxsw_core *mlxsw_core, u8 local_port,
                return max_width;
        }
 
-       if (count != 2 && count != 4) {
-               netdev_err(mlxsw_sp_port->dev, "Port can only be split into 2 or 4 ports\n");
-               NL_SET_ERR_MSG_MOD(extack, "Port can only be split into 2 or 4 ports");
-               return -EINVAL;
-       }
-
        /* Split port with non-max module width cannot be split. */
        if (mlxsw_sp_port->mapping.width != max_width) {
                netdev_err(mlxsw_sp_port->dev, "Port cannot be split further\n");
@@ -4141,6 +4135,12 @@ static int mlxsw_sp_port_split(struct mlxsw_core *mlxsw_core, u8 local_port,
                return -EINVAL;
        }
 
+       if (count != 2 && count != 4) {
+               netdev_err(mlxsw_sp_port->dev, "Port can only be split into 2 or 4 ports\n");
+               NL_SET_ERR_MSG_MOD(extack, "Port can only be split into 2 or 4 ports");
+               return -EINVAL;
+       }
+
        /* Make sure we have enough slave (even) ports for the split. */
        if (count == 2) {
                offset = local_ports_in_2x;