Skip to content

Commit bfedc64

Browse files
Eli BritsteinSaeed Mahameed
authored andcommitted
net/mlx5: Use read-modify-write when changing PCMR register values
Currently changing a PCMR field is done by setting the field in a zeroed buffer, zeroing other unrelated fields. Fix this behaviour by modifying only the required field after first reading the current register values, as a pre-step towards using more fields in PCMR register. Signed-off-by: Eli Britstein <elibr@mellanox.com> Reviewed-by: Oz Shlomo <ozsh@mellanox.com> Reviewed-by: Roi Dayan <roid@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
1 parent 2fce40a commit bfedc64

File tree

1 file changed

+4
-0
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core

1 file changed

+4
-0
lines changed

drivers/net/ethernet/mellanox/mlx5/core/port.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,7 +785,11 @@ static int mlx5_set_ports_check(struct mlx5_core_dev *mdev, u32 *in, int inlen)
785785
int mlx5_set_port_fcs(struct mlx5_core_dev *mdev, u8 enable)
786786
{
787787
u32 in[MLX5_ST_SZ_DW(pcmr_reg)] = {0};
788+
int err;
788789

790+
err = mlx5_query_ports_check(mdev, in, sizeof(in));
791+
if (err)
792+
return err;
789793
MLX5_SET(pcmr_reg, in, local_port, 1);
790794
MLX5_SET(pcmr_reg, in, fcs_chk, enable);
791795
return mlx5_set_ports_check(mdev, in, sizeof(in));

0 commit comments

Comments
 (0)