mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
net/mlx5e: Move Ethernet driver debugfs to profile init callback
As priv->dfs_root is cleared, and therefore missed, when change
eswitch mode, move the creation of the root debugfs to the init
callback of mlx5e_nic_profile and mlx5e_uplink_rep_profile, and
the destruction to the cleanup callback for symmeter.
Fixes: 288eca60cc ("net/mlx5e: Add Ethernet driver debugfs")
Signed-off-by: Jianbo Liu <jianbol@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
bdf274750f
commit
c4c24fc30c
|
|
@ -5261,12 +5261,16 @@ static int mlx5e_nic_init(struct mlx5_core_dev *mdev,
|
|||
|
||||
mlx5e_timestamp_init(priv);
|
||||
|
||||
priv->dfs_root = debugfs_create_dir("nic",
|
||||
mlx5_debugfs_get_dev_root(mdev));
|
||||
|
||||
fs = mlx5e_fs_init(priv->profile, mdev,
|
||||
!test_bit(MLX5E_STATE_DESTROYING, &priv->state),
|
||||
priv->dfs_root);
|
||||
if (!fs) {
|
||||
err = -ENOMEM;
|
||||
mlx5_core_err(mdev, "FS initialization failed, %d\n", err);
|
||||
debugfs_remove_recursive(priv->dfs_root);
|
||||
return err;
|
||||
}
|
||||
priv->fs = fs;
|
||||
|
|
@ -5287,6 +5291,7 @@ static void mlx5e_nic_cleanup(struct mlx5e_priv *priv)
|
|||
mlx5e_health_destroy_reporters(priv);
|
||||
mlx5e_ktls_cleanup(priv);
|
||||
mlx5e_fs_cleanup(priv->fs);
|
||||
debugfs_remove_recursive(priv->dfs_root);
|
||||
priv->fs = NULL;
|
||||
}
|
||||
|
||||
|
|
@ -6011,9 +6016,6 @@ static int mlx5e_probe(struct auxiliary_device *adev,
|
|||
priv->profile = profile;
|
||||
priv->ppriv = NULL;
|
||||
|
||||
priv->dfs_root = debugfs_create_dir("nic",
|
||||
mlx5_debugfs_get_dev_root(priv->mdev));
|
||||
|
||||
err = profile->init(mdev, netdev);
|
||||
if (err) {
|
||||
mlx5_core_err(mdev, "mlx5e_nic_profile init failed, %d\n", err);
|
||||
|
|
@ -6042,7 +6044,6 @@ static int mlx5e_probe(struct auxiliary_device *adev,
|
|||
err_profile_cleanup:
|
||||
profile->cleanup(priv);
|
||||
err_destroy_netdev:
|
||||
debugfs_remove_recursive(priv->dfs_root);
|
||||
mlx5e_destroy_netdev(priv);
|
||||
err_devlink_port_unregister:
|
||||
mlx5e_devlink_port_unregister(mlx5e_dev);
|
||||
|
|
@ -6062,7 +6063,6 @@ static void mlx5e_remove(struct auxiliary_device *adev)
|
|||
unregister_netdev(priv->netdev);
|
||||
mlx5e_suspend(adev, state);
|
||||
priv->profile->cleanup(priv);
|
||||
debugfs_remove_recursive(priv->dfs_root);
|
||||
mlx5e_destroy_netdev(priv);
|
||||
mlx5e_devlink_port_unregister(mlx5e_dev);
|
||||
mlx5e_destroy_devlink(mlx5e_dev);
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/mlx5/fs.h>
|
||||
#include <net/switchdev.h>
|
||||
#include <net/pkt_cls.h>
|
||||
|
|
@ -812,11 +813,15 @@ static int mlx5e_init_ul_rep(struct mlx5_core_dev *mdev,
|
|||
{
|
||||
struct mlx5e_priv *priv = netdev_priv(netdev);
|
||||
|
||||
priv->dfs_root = debugfs_create_dir("nic",
|
||||
mlx5_debugfs_get_dev_root(mdev));
|
||||
|
||||
priv->fs = mlx5e_fs_init(priv->profile, mdev,
|
||||
!test_bit(MLX5E_STATE_DESTROYING, &priv->state),
|
||||
priv->dfs_root);
|
||||
if (!priv->fs) {
|
||||
netdev_err(priv->netdev, "FS allocation failed\n");
|
||||
debugfs_remove_recursive(priv->dfs_root);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
|
|
@ -829,6 +834,7 @@ static int mlx5e_init_ul_rep(struct mlx5_core_dev *mdev,
|
|||
static void mlx5e_cleanup_rep(struct mlx5e_priv *priv)
|
||||
{
|
||||
mlx5e_fs_cleanup(priv->fs);
|
||||
debugfs_remove_recursive(priv->dfs_root);
|
||||
priv->fs = NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user