Commit 5b246e53 authored by Michal Swiatkowski's avatar Michal Swiatkowski Committed by Tony Nguyen

ice: split probe into smaller functions

Part of code from probe can be reused in reload flow. Move this code to
separate function. Create unroll functions for each part of
initialization, like: ice_init_dev() and ice_deinit_dev(). It
simplifies unrolling and can be used in remove flow.

Avoid freeing port info as it could be reused in reload path.
Will be freed in remove path since is allocated via devm_kzalloc().

Also clean the remove path to reflect the init steps.
Signed-off-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent a696d615
...@@ -931,6 +931,8 @@ int ice_open(struct net_device *netdev); ...@@ -931,6 +931,8 @@ int ice_open(struct net_device *netdev);
int ice_open_internal(struct net_device *netdev); int ice_open_internal(struct net_device *netdev);
int ice_stop(struct net_device *netdev); int ice_stop(struct net_device *netdev);
void ice_service_task_schedule(struct ice_pf *pf); void ice_service_task_schedule(struct ice_pf *pf);
int ice_load(struct ice_pf *pf);
void ice_unload(struct ice_pf *pf);
/** /**
* ice_set_rdma_cap - enable RDMA support * ice_set_rdma_cap - enable RDMA support
......
...@@ -1088,8 +1088,10 @@ int ice_init_hw(struct ice_hw *hw) ...@@ -1088,8 +1088,10 @@ int ice_init_hw(struct ice_hw *hw)
if (status) if (status)
goto err_unroll_cqinit; goto err_unroll_cqinit;
if (!hw->port_info)
hw->port_info = devm_kzalloc(ice_hw_to_dev(hw), hw->port_info = devm_kzalloc(ice_hw_to_dev(hw),
sizeof(*hw->port_info), GFP_KERNEL); sizeof(*hw->port_info),
GFP_KERNEL);
if (!hw->port_info) { if (!hw->port_info) {
status = -ENOMEM; status = -ENOMEM;
goto err_unroll_cqinit; goto err_unroll_cqinit;
...@@ -1217,11 +1219,6 @@ void ice_deinit_hw(struct ice_hw *hw) ...@@ -1217,11 +1219,6 @@ void ice_deinit_hw(struct ice_hw *hw)
ice_free_hw_tbls(hw); ice_free_hw_tbls(hw);
mutex_destroy(&hw->tnl_lock); mutex_destroy(&hw->tnl_lock);
if (hw->port_info) {
devm_kfree(ice_hw_to_dev(hw), hw->port_info);
hw->port_info = NULL;
}
/* Attempt to disable FW logging before shutting down control queues */ /* Attempt to disable FW logging before shutting down control queues */
ice_cfg_fw_log(hw, false); ice_cfg_fw_log(hw, false);
ice_destroy_all_ctrlq(hw); ice_destroy_all_ctrlq(hw);
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment