ice: Remove and readd netdev during devlink reload
authorWojciech Drewek <wojciech.drewek@intel.com>
Mon, 5 Feb 2024 13:03:56 +0000 (14:03 +0100)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Mon, 12 Feb 2024 18:11:53 +0000 (10:11 -0800)
commit41cc4e53934c30f1cf7745c257154e538c78a1f5
tree365e931ebdde61de9a8357eec33095ba158d3f6f
parent372e27de4ca8e5f22586198cd9429bfea75021ac
ice: Remove and readd netdev during devlink reload

Recent changes to the devlink reload (commit 9b2348e2d6c9
("devlink: warn about existing entities during reload-reinit"))
force the drivers to destroy devlink ports during reinit.
Adjust ice driver to this requirement, unregister netdvice, destroy
devlink port. ice_init_eth() was removed and all the common code
between probe and reload was moved to ice_load().

During devlink reload we can't take devl_lock (it's already taken)
and in ice_probe() we have to lock it. Use devl_* variant of the API
which does not acquire and release devl_lock. Guard ice_load()
with devl_lock only in case of probe.

Suggested-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: Wojciech Drewek <wojciech.drewek@intel.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.h
drivers/net/ethernet/intel/ice/ice_devlink.c
drivers/net/ethernet/intel/ice/ice_main.c