| From f27c400e1e9704f855009d6f23cf4827bdb09055 Mon Sep 17 00:00:00 2001 |
| From: Gal Pressman <galp@mellanox.com> |
| Date: Wed, 2 Mar 2016 00:13:38 +0200 |
| Subject: [PATCH 093/135] net/mlx5e: Don't modify CQ before it was created |
| |
| [ 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; |
| } |
| |