Extract ice_init_dev() from ice_init(), to allow service task and IRQ
scheme teardown to be put after clearing SW constructs in the subsequent
commit.
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>
struct device *dev = ice_pf_to_dev(pf);
int err;
- err = ice_init_dev(pf);
- if (err)
- return err;
-
err = ice_init_pf(pf);
if (err) {
dev_err(dev, "ice_init_pf failed: %d\n", err);
- goto unroll_dev_init;
+ return err;
}
if (pf->hw.mac_type == ICE_MAC_E830) {
ice_dealloc_vsis(pf);
unroll_pf_init:
ice_deinit_pf(pf);
-unroll_dev_init:
- ice_deinit_dev(pf);
return err;
}
ice_deinit_pf_sw(pf);
ice_dealloc_vsis(pf);
ice_deinit_pf(pf);
- ice_deinit_dev(pf);
}
/**
}
pf->adapter = adapter;
- err = ice_init(pf);
+ err = ice_init_dev(pf);
if (err)
goto unroll_adapter;
+ err = ice_init(pf);
+ if (err)
+ goto unroll_dev_init;
+
devl_lock(priv_to_devlink(pf));
err = ice_load(pf);
if (err)
unroll_init:
devl_unlock(priv_to_devlink(pf));
ice_deinit(pf);
+unroll_dev_init:
+ ice_deinit_dev(pf);
unroll_adapter:
ice_adapter_put(pdev);
unroll_hw_init:
devl_unlock(priv_to_devlink(pf));
ice_deinit(pf);
+ ice_deinit_dev(pf);
ice_vsi_release_all(pf);
ice_setup_mc_magic_wake(pf);