Re: [PATCH iwl-net 09/10] ice: program multicast magic wake before tearing down the main VSI
flat view
From: Ivan Vecera <ivecera@redhat.com>
Date: 2026-10-03 09:56:19
Also in:
bpf, intel-wired-lan, lkml
On October 2, 2026 3:07:51 PM GMT+02:00, Petr Oros [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Since commit 5b246e533d01 ("ice: split probe into smaller functions") ice_remove() calls ice_setup_mc_magic_wake() after ice_deinit(), which frees pf->vsi. ice_get_main_vsi() then returns NULL and the function returns before it sends the Manage MAC Write command, so multicast magic packet wake and keeping a locally administered address across the PF reset are never set up on shutdown with WoL enabled. Program it before the netdev and the VSIs are torn down, as it was done before that commit, so the current netdev address is used again. i40e had a similar problem, where the multicast magic wake setup ran after the admin queue had already been shut down, and fixed it in commit e661414c98df ("i40e: Remove duplicated prepare call in i40e_shutdown"). Fixes: 5b246e533d01 ("ice: split probe into smaller functions") Assisted-by: LLM Signed-off-by: Petr Oros <redacted> --- drivers/net/ethernet/intel/ice/ice_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index ceb9fec2af21e7..a885b3e0baaa5d 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c@@ -5456,6 +5456,8 @@ static void ice_remove(struct pci_dev *pdev)if (!ice_is_safe_mode(pf)) ice_remove_arfs(pf); + ice_setup_mc_magic_wake(pf); + devl_lock(priv_to_devlink(pf)); ice_dealloc_all_dynamic_ports(pf); ice_deinit_devlink(pf);@@ -5466,7 +5468,6 @@ static void ice_remove(struct pci_dev *pdev)ice_deinit(pf); ice_vsi_release_all(pf); - ice_setup_mc_magic_wake(pf); ice_set_wake(pf); ice_adapter_put(pdev);
Reviewed-by: Ivan Vecera <ivecera@redhat.com>