[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <PH0PR12MB5481D1AC09BAB933660E12F8DCF09@PH0PR12MB5481.namprd12.prod.outlook.com>
Date: Tue, 3 Aug 2021 02:58:08 +0000
From: Parav Pandit <parav@...dia.com>
To: Leon Romanovsky <leon@...nel.org>,
Jakub Kicinski <kuba@...nel.org>,
"David S . Miller" <davem@...emloft.net>
CC: Leon Romanovsky <leonro@...dia.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Saeed Mahameed <saeedm@...dia.com>,
Vu Pham <vuhuong@...dia.com>
Subject: RE: [PATCH net] net/mlx5: Don't skip subfunction cleanup in case of
error in module init
> From: Leon Romanovsky <leon@...nel.org>
> Sent: Monday, August 2, 2021 7:10 PM
> From: Leon Romanovsky <leonro@...dia.com>
>
> Clean SF resources if mlx5 eth failed to initialize.
>
> Fixes: 1958fc2f0712 ("net/mlx5: SF, Add auxiliary device driver")
> Signed-off-by: Leon Romanovsky <leonro@...dia.com>
> ---
> drivers/net/ethernet/mellanox/mlx5/core/main.c | 12 ++++--------
> drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 5 +++++
> 2 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c
> b/drivers/net/ethernet/mellanox/mlx5/core/main.c
> index eb1b316560a8..c84ad87c99bb 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
> @@ -1784,16 +1784,14 @@ static int __init init(void)
> if (err)
> goto err_sf;
>
> -#ifdef CONFIG_MLX5_CORE_EN
> err = mlx5e_init();
> - if (err) {
> - pci_unregister_driver(&mlx5_core_driver);
> - goto err_debug;
> - }
> -#endif
> + if (err)
> + goto err_en;
>
> return 0;
>
> +err_en:
> + mlx5_sf_driver_unregister();
> err_sf:
> pci_unregister_driver(&mlx5_core_driver);
> err_debug:
> @@ -1803,9 +1801,7 @@ static int __init init(void)
>
> static void __exit cleanup(void)
> {
> -#ifdef CONFIG_MLX5_CORE_EN
> mlx5e_cleanup();
> -#endif
> mlx5_sf_driver_unregister();
> pci_unregister_driver(&mlx5_core_driver);
> mlx5_unregister_debugfs();
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
> b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
> index 343807ac2036..da365b8f0141 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
> @@ -206,8 +206,13 @@ int mlx5_firmware_flash(struct mlx5_core_dev
> *dev, const struct firmware *fw, int mlx5_fw_version_query(struct
> mlx5_core_dev *dev,
> u32 *running_ver, u32 *stored_ver);
>
> +#ifdef CONFIG_MLX5_CORE_EN
> int mlx5e_init(void);
> void mlx5e_cleanup(void);
> +#else
> +static inline int mlx5e_init(void){ return 0; } static inline void
> +mlx5e_cleanup(void){} #endif
>
mlx5e_*() functionality is provided by core/en.h and core/en_main.c
So above declaration should come from en_main.h, instead of mlx5_core.h, but we don't have en_main.h currently.
Including en.h is too much given rest of the other declarations in it.
So for net fix, this is ok, for net-next en.h should be improved and above declaration should move to en_main.h.
Reviewed-by: Parav Pandit <parav@...dia.com>
Powered by blists - more mailing lists