ice: ice_probe: init ice_adapter after HW init
authorPrzemek Kitszel <przemyslaw.kitszel@intel.com>
Wed, 2 Oct 2024 11:50:24 +0000 (13:50 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 14 Jan 2025 22:37:34 +0000 (14:37 -0800)
Move ice_adapter initialization to be after HW init, so it could use HW
capabilities, like number of PFs. This is needed for devlink-resource
based RSS LUT size management for PF/VF (not in this series).

Reviewed-by: Marcin Szycik <marcin.szycik@linux.intel.com>
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@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 7fd79482116f7b740f6fcf180b25a0dc02ed89bd..f63e485e65f680450ef338ca61d50bc961a26df6 100644 (file)
@@ -5277,13 +5277,7 @@ ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)
        }
 
        pci_set_master(pdev);
-
-       adapter = ice_adapter_get(pdev);
-       if (IS_ERR(adapter))
-               return PTR_ERR(adapter);
-
        pf->pdev = pdev;
-       pf->adapter = adapter;
        pci_set_drvdata(pdev, pf);
        set_bit(ICE_DOWN, pf->state);
        /* Disable service task until DOWN bit is cleared */
@@ -5314,12 +5308,19 @@ ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)
        err = ice_init_hw(hw);
        if (err) {
                dev_err(dev, "ice_init_hw failed: %d\n", err);
-               goto unroll_adapter;
+               return err;
        }
 
+       adapter = ice_adapter_get(pdev);
+       if (IS_ERR(adapter)) {
+               err = PTR_ERR(adapter);
+               goto unroll_hw_init;
+       }
+       pf->adapter = adapter;
+
        err = ice_init(pf);
        if (err)
-               goto unroll_hw_init;
+               goto unroll_adapter;
 
        devl_lock(priv_to_devlink(pf));
        err = ice_load(pf);
@@ -5338,10 +5339,10 @@ unroll_load:
 unroll_init:
        devl_unlock(priv_to_devlink(pf));
        ice_deinit(pf);
-unroll_hw_init:
-       ice_deinit_hw(hw);
 unroll_adapter:
        ice_adapter_put(pdev);
+unroll_hw_init:
+       ice_deinit_hw(hw);
        return err;
 }