[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1a5428ff-b5d3-4781-bd1d-f5ca2b6823e1@amd.com>
Date: Thu, 8 Feb 2024 09:14:51 -0800
From: Brett Creeley <bcreeley@....com>
To: Wojciech Drewek <wojciech.drewek@...el.com>,
intel-wired-lan@...ts.osuosl.org
Cc: netdev@...r.kernel.org, jiri@...nulli.us, przemyslaw.kitszel@...el.com,
vadim.fedorenko@...ux.dev, paul.m.stillwell.jr@...el.com
Subject: Re: [PATCH iwl-next v5 2/2] ice: Fix debugfs with devlink reload
On 2/5/2024 5:03 AM, Wojciech Drewek wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> During devlink reload it is needed to remove debugfs entries
> correlated with only one PF. ice_debugfs_exit() removes all
> entries created by ice driver so we can't use it.
>
> Introduce ice_debugfs_pf_deinit() in order to release PF's
> debugfs entries. Move ice_debugfs_exit() call to ice_module_exit(),
> it makes more sense since ice_debugfs_init() is called in
> ice_module_init() and not in ice_probe().
>
> Signed-off-by: Wojciech Drewek <wojciech.drewek@...el.com>
LGTM.
Reviewed-by: Brett Creeley <brett.creeley@....com>
> ---
> drivers/net/ethernet/intel/ice/ice.h | 1 +
> drivers/net/ethernet/intel/ice/ice_debugfs.c | 10 ++++++++++
> drivers/net/ethernet/intel/ice/ice_fwlog.c | 2 ++
> drivers/net/ethernet/intel/ice/ice_main.c | 3 +--
> 4 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h
> index 118e84835720..365c03d1c462 100644
> --- a/drivers/net/ethernet/intel/ice/ice.h
> +++ b/drivers/net/ethernet/intel/ice/ice.h
> @@ -896,6 +896,7 @@ static inline bool ice_is_adq_active(struct ice_pf *pf)
> }
>
> void ice_debugfs_fwlog_init(struct ice_pf *pf);
> +void ice_debugfs_pf_deinit(struct ice_pf *pf);
> void ice_debugfs_init(void);
> void ice_debugfs_exit(void);
> void ice_pf_fwlog_update_module(struct ice_pf *pf, int log_level, int module);
> diff --git a/drivers/net/ethernet/intel/ice/ice_debugfs.c b/drivers/net/ethernet/intel/ice/ice_debugfs.c
> index 85aa31dd86b1..d252d98218d0 100644
> --- a/drivers/net/ethernet/intel/ice/ice_debugfs.c
> +++ b/drivers/net/ethernet/intel/ice/ice_debugfs.c
> @@ -644,6 +644,16 @@ void ice_debugfs_fwlog_init(struct ice_pf *pf)
> kfree(fw_modules);
> }
>
> +/**
> + * ice_debugfs_pf_deinit - cleanup PF's debugfs
> + * @pf: pointer to the PF struct
> + */
> +void ice_debugfs_pf_deinit(struct ice_pf *pf)
> +{
> + debugfs_remove_recursive(pf->ice_debugfs_pf);
> + pf->ice_debugfs_pf = NULL;
> +}
> +
> /**
> * ice_debugfs_init - create root directory for debugfs entries
> */
> diff --git a/drivers/net/ethernet/intel/ice/ice_fwlog.c b/drivers/net/ethernet/intel/ice/ice_fwlog.c
> index 92b5dac481cd..4fd15387a7e5 100644
> --- a/drivers/net/ethernet/intel/ice/ice_fwlog.c
> +++ b/drivers/net/ethernet/intel/ice/ice_fwlog.c
> @@ -188,6 +188,8 @@ void ice_fwlog_deinit(struct ice_hw *hw)
> if (hw->bus.func)
> return;
>
> + ice_debugfs_pf_deinit(hw->back);
> +
> /* make sure FW logging is disabled to not put the FW in a weird state
> * for the next driver load
> */
> diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
> index 85a996ad2c1f..9c2c8637b4a7 100644
> --- a/drivers/net/ethernet/intel/ice/ice_main.c
> +++ b/drivers/net/ethernet/intel/ice/ice_main.c
> @@ -5276,8 +5276,6 @@ static void ice_remove(struct pci_dev *pdev)
> msleep(100);
> }
>
> - ice_debugfs_exit();
> -
> if (test_bit(ICE_FLAG_SRIOV_ENA, pf->flags)) {
> set_bit(ICE_VF_RESETS_DISABLED, pf->state);
> ice_free_vfs(pf);
> @@ -5783,6 +5781,7 @@ module_init(ice_module_init);
> static void __exit ice_module_exit(void)
> {
> pci_unregister_driver(&ice_driver);
> + ice_debugfs_exit();
> destroy_workqueue(ice_wq);
> destroy_workqueue(ice_lag_wq);
> pr_info("module unloaded\n");
> --
> 2.40.1
>
Powered by blists - more mailing lists