[Intel-wired-lan] [PATCH iwl-net v1] ice: add missing ice_deinit_hw() in devlink reinit path

Rinitha, SX sx.rinitha at intel.com
Fri Jan 9 11:12:16 UTC 2026


> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces at osuosl.org> On Behalf Of Paul Greenwalt
> Sent: 18 December 2025 19:07
> To: intel-wired-lan at lists.osuosl.org
> Cc: Kitszel, Przemyslaw <przemyslaw.kitszel at intel.com>; Greenwalt, Paul <paul.greenwalt at intel.com>; Loktionov, Aleksandr <aleksandr.loktionov at intel.com>
> 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 <aleksandr.loktionov at intel.com>
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel at intel.com>
> Signed-off-by: Paul Greenwalt <paul.greenwalt at intel.com>
> ---
> drivers/net/ethernet/intel/ice/devlink/devlink.c | 1 +
> 1 file changed, 1 insertion(+)
>

Tested-by: Rinitha S <sx.rinitha at intel.com> (A Contingent worker at Intel)


More information about the Intel-wired-lan mailing list