| From | Greg Kroah-Hartman <> | Subject | [PATCH 4.4 089/192] [PATCH 093/135] net/mlx5e: Dont modify CQ before it was created | Date | Mon, 12 Sep 2016 18:59:58 +0200 |
| |
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 2fcb92fbd04eef26dfe7e67839da6262d83d6b65 ]
Calling mlx5e_set_coalesce while the interface is down will result in modifying CQs that don't exist.
Fixes: f62b8bb8f2d3 ('net/mlx5: Extend mlx5_core to support ConnectX-4 Ethernet functionality') Signed-off-by: Gal Pressman <galp@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <alexander.levin@verizon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 6 ++++++ 1 file changed, 6 insertions(+)
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c @@ -422,11 +422,15 @@ static int mlx5e_set_coalesce(struct net if (!MLX5_CAP_GEN(mdev, cq_moderation)) return -ENOTSUPP; + mutex_lock(&priv->state_lock); priv->params.tx_cq_moderation_usec = coal->tx_coalesce_usecs; priv->params.tx_cq_moderation_pkts = coal->tx_max_coalesced_frames; priv->params.rx_cq_moderation_usec = coal->rx_coalesce_usecs; priv->params.rx_cq_moderation_pkts = coal->rx_max_coalesced_frames; + if (!test_bit(MLX5E_STATE_OPENED, &priv->state)) + goto out; + for (i = 0; i < priv->params.num_channels; ++i) { c = priv->channel[i]; @@ -442,6 +446,8 @@ static int mlx5e_set_coalesce(struct net coal->rx_max_coalesced_frames); } +out: + mutex_unlock(&priv->state_lock); return 0; }
|