]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ice: remove duplicate call to ice_deinit_hw() on error paths
authorPrzemek Kitszel <przemyslaw.kitszel@intel.com>
Fri, 12 Sep 2025 13:06:27 +0000 (15:06 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Fri, 24 Oct 2025 20:27:20 +0000 (13:27 -0700)
Current unwinding code on error paths of ice_devlink_reinit_up() and
ice_probe() have manual call to ice_deinit_hw() (which is good, as there
is also manual call to ice_hw_init() there), which is then duplicated
(and was prior current series) in ice_deinit_dev().

Fix the above by removing ice_deinit_hw() from ice_deinit_dev().
Add a (now missing) call in ice_remove().

Reported-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/intel-wired-lan/20250717-jk-ddp-safe-mode-issue-v1-1-e113b2baed79@intel.com/
Fixes: 4d3f59bfa2cd ("ice: split ice_init_hw() out from ice_init_dev()")
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_main.c

index a1fe2d363adb0683b49b18c843ae8c15a162d18c..1de3da7b3907db9ce8e4782f2130da132ff58ac7 100644 (file)
@@ -4784,7 +4784,6 @@ int ice_init_dev(struct ice_pf *pf)
 
 void ice_deinit_dev(struct ice_pf *pf)
 {
-       ice_deinit_hw(&pf->hw);
        ice_service_task_stop(pf);
 
        /* Service task is already stopped, so call reset directly. */
@@ -5466,6 +5465,7 @@ static void ice_remove(struct pci_dev *pdev)
        ice_set_wake(pf);
 
        ice_adapter_put(pdev);
+       ice_deinit_hw(&pf->hw);
 
        ice_deinit_dev(pf);
        ice_aq_cancel_waiting_tasks(pf);