]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Dec 2025 13:02:38 +0000 (14:02 +0100)
[ Upstream commit 1390b8b3d2bef9bfbb852fc735430798bfca36e7 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/ice/ice_main.c

index f1ebdb7dbdc73a405b87f95c0d6313947512387c..b0f8a96c13b471034b80dacb868eec007bf6f042 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);