Commit 412283ee authored by Ido Schimmel's avatar Ido Schimmel Committed by David S. Miller
Browse files

mlxsw: spectrum_nve: Replace error code with EINVAL

Adding a VLAN on a port can trigger the offload of a VXLAN tunnel which
is already a member in the VLAN. In case the configuration of the VXLAN
is not supported, the driver would return -EOPNOTSUPP.

This is problematic since bridge code does not interpret this as error,
but rather that it should try to setup the VLAN using the 8021q driver
instead of switchdev.

Fixes: d70e42b2

 ("mlxsw: spectrum: Enable VxLAN enslavement to VLAN-aware bridges")
Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
Reviewed-by: default avatarPetr Machata <petrm@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 457e20d6
...@@ -816,14 +816,14 @@ int mlxsw_sp_nve_fid_enable(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_fid *fid, ...@@ -816,14 +816,14 @@ int mlxsw_sp_nve_fid_enable(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_fid *fid,
ops = nve->nve_ops_arr[params->type]; ops = nve->nve_ops_arr[params->type];
if (!ops->can_offload(nve, params->dev, extack)) if (!ops->can_offload(nve, params->dev, extack))
return -EOPNOTSUPP; return -EINVAL;
memset(&config, 0, sizeof(config)); memset(&config, 0, sizeof(config));
ops->nve_config(nve, params->dev, &config); ops->nve_config(nve, params->dev, &config);
if (nve->num_nve_tunnels && if (nve->num_nve_tunnels &&
memcmp(&config, &nve->config, sizeof(config))) { memcmp(&config, &nve->config, sizeof(config))) {
NL_SET_ERR_MSG_MOD(extack, "Conflicting NVE tunnels configuration"); NL_SET_ERR_MSG_MOD(extack, "Conflicting NVE tunnels configuration");
return -EOPNOTSUPP; return -EINVAL;
} }
err = mlxsw_sp_nve_tunnel_init(mlxsw_sp, &config); err = mlxsw_sp_nve_tunnel_init(mlxsw_sp, &config);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment