> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of Paul > Greenwalt > Sent: 18 December 2025 19:07 > To: [email protected] > Cc: Kitszel, Przemyslaw <[email protected]>; Greenwalt, Paul > <[email protected]>; Loktionov, Aleksandr > <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-net v1] ice: add missing > ice_deinit_hw() in devlink reinit path > > devlink-reload results in ice_init_hw failed error, and then removing the ice > driver causes a NULL pointer dereference. > > [ +0.102213] ice 0000:ca:00.0: ice_init_hw failed: -16 ... > [ +0.000001] Call Trace: > [ +0.000003] <TASK> > [ +0.000006] ice_unload+0x8f/0x100 [ice] [ +0.000081] > ice_remove+0xba/0x300 [ice] > > Commit 1390b8b3d2be ("ice: remove duplicate call to ice_deinit_hw() on error > paths") removed ice_deinit_hw() from ice_deinit_dev(). As a result > ice_devlink_reinit_down() no longer calls ice_deinit_hw(), but > ice_devlink_reinit_up() still calls ice_init_hw(). Since the control queues > are not uninitialized, ice_init_hw() fails with -EBUSY. > > Add ice_deinit_hw() to ice_devlink_reinit_down() to correspond with > ice_init_hw() in ice_devlink_reinit_up(). > > Fixes: 1390b8b3d2be ("ice: remove duplicate call to ice_deinit_hw() on error > paths") > Reviewed-by: Aleksandr Loktionov <[email protected]> > Reviewed-by: Przemek Kitszel <[email protected]> > Signed-off-by: Paul Greenwalt <[email protected]> > --- > drivers/net/ethernet/intel/ice/devlink/devlink.c | 1 + > 1 file changed, 1 insertion(+) >
Tested-by: Rinitha S <[email protected]> (A Contingent worker at Intel)
