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.szy...@linux.intel.com>
Signed-off-by: Przemek Kitszel <przemyslaw.kits...@intel.com>
---
 drivers/net/ethernet/intel/ice/ice_main.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_main.c 
b/drivers/net/ethernet/intel/ice/ice_main.c
index a043deccf038..2b8db14d99f3 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -5273,13 +5273,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 */
@@ -5310,12 +5304,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);
@@ -5334,10 +5335,10 @@ ice_probe(struct pci_dev *pdev, const struct 
pci_device_id __always_unused *ent)
 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;
 }
 
-- 
2.46.0

Reply via email to