mlxsw: reg: Fix SSPR register layout
authorIdo Schimmel <idosch@nvidia.com>
Thu, 17 Aug 2023 13:58:23 +0000 (15:58 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 19 Aug 2023 02:41:06 +0000 (19:41 -0700)
commit0dc63b9cfd4c5666ced52c829fdd65dcaeb9f0f1
treecf4103ad77e018ec349f4c785dafb08f89cb7900
parentbc2de151ab6ad0762a04563527ec42e54dde572a
mlxsw: reg: Fix SSPR register layout

The two most significant bits of the "local_port" field in the SSPR
register are always cleared since they are overwritten by the deprecated
and overlapping "sub_port" field.

On systems with more than 255 local ports (e.g., Spectrum-4), this
results in the firmware maintaining invalid mappings between system port
and local port. Specifically, two different systems ports (0x1 and
0x101) point to the same local port (0x1), which eventually leads to
firmware errors.

Fix by removing the deprecated "sub_port" field.

Fixes: fd24b29a1b74 ("mlxsw: reg: Align existing registers to use extended local_port field")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/9b909a3033c8d3d6f67f237306bef4411c5e6ae4.1692268427.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlxsw/reg.h