RE: [PATCH] wifi: iwlwifi: mvm: Add error logging for iwl_finish_nic_init()
From: Korenblit, Miriam Rachel
Date: Mon Apr 07 2025 - 02:48:55 EST
> -----Original Message-----
> From: Wentao Liang <vulab@xxxxxxxxxxx>
> Sent: Sunday, 6 April 2025 19:42
> To: Korenblit, Miriam Rachel <miriam.rachel.korenblit@xxxxxxxxx>;
> kvalo@xxxxxxxxxx
> Cc: Berg, Johannes <johannes.berg@xxxxxxxxx>; Grumbach, Emmanuel
> <emmanuel.grumbach@xxxxxxxxx>; Ben Ami, Golan <golan.ben.ami@xxxxxxxxx>;
> linux-wireless@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Wentao Liang
> <vulab@xxxxxxxxxxx>
> Subject: [PATCH] wifi: iwlwifi: mvm: Add error logging for iwl_finish_nic_init()
>
> The function iwl_pci_resume() calls the function iwl_finish_nic_init(), but does not
> check their return values.
>
> Log a detailed error message with the error code to aid in diagnosing root causes
> if encountering irreparable errors. While this does not fix the underlying problem,
> it avoids silent failures by making the failure visible in logs.
>
> Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
> ---
> drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> index 8fb2aa282242..f577f8c1d5b0 100644
> --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> @@ -1616,6 +1616,7 @@ static int _iwl_pci_resume(struct device *device, bool
> restore)
> struct iwl_trans *trans = pci_get_drvdata(pdev);
> struct iwl_trans_pcie *trans_pcie =
> IWL_TRANS_GET_PCIE_TRANS(trans);
> bool device_was_powered_off = false;
> + int err;
>
> /* Before you put code here, think about WoWLAN. You cannot check
> here
> * whether WoWLAN is enabled or not, and your code will run even if
> @@ -1647,7 +1648,9 @@ static int _iwl_pci_resume(struct device *device, bool
> restore)
> * won't really know how to recover.
> */
> iwl_pcie_prepare_card_hw(trans);
> - iwl_finish_nic_init(trans);
> + err = iwl_finish_nic_init(trans);
> + if (err)
> + pr_err("NIC initialization failed after power-off (error
> %d).",
> +err);
> iwl_op_mode_device_powered_off(trans->op_mode);
> }
>
> --
> 2.42.0.windows.2
iwl_finish_nic_init has a print inside when it fails. You can enable that debug level
while it can be a good idea to have that log as a 'IWL_ERR'.