As part of the recover flow, driver calls mlx5e_open_locked, which
eventually calls netif_set_real_num_tx_queues. RTNL lock must be held as
part of this flow in advance, like in other flows in the driver.

Fixes: aba25279c100 ("net/mlx5e: Add TX reporter support")
Signed-off-by: Eran Ben Elisha <era...@mellanox.com>
Reported-by: Maria Pasechnik <mar...@mellanox.com>
Reviewed-by: Moshe Shemesh <mo...@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c 
b/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
index 7238cda670ba..5c29de7bd1d6 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
@@ -173,10 +173,12 @@ static int mlx5e_tx_reporter_recover_all(struct 
mlx5e_priv *priv)
 {
        int err;
 
+       rtnl_lock();
        mutex_lock(&priv->state_lock);
        mlx5e_close_locked(priv->netdev);
        err = mlx5e_open_locked(priv->netdev);
        mutex_unlock(&priv->state_lock);
+       rtnl_unlock();
 
        return err;
 }
-- 
2.17.1

Reply via email to