> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of 
> [email protected]
> Sent: Tuesday, July 21, 2026 3:36 AM
> To: [email protected]
> Cc: Nguyen, Anthony L <[email protected]>; Kitszel, Przemyslaw 
> <[email protected]>; [email protected]; [email protected]; 
> [email protected]; [email protected]; [email protected]; [email protected]; 
> [email protected]; Xuanqiang Luo <[email protected]>; 
> [email protected]
> Subject: [Intel-wired-lan] [PATCH iwl-net v1] igb/igbvf: disable work items 
> before device removal
> 
> From: Xuanqiang Luo <[email protected]>
> 
> A watchdog work item that is already running can queue the reset work after 
> the remove path has canceled it. The netdev Tx timeout handler can also queue 
> the reset work until unregister_netdev() shuts the interface down.
> In igb, device reset interrupts provide another enqueue path. The reset work 
> may then run after free_netdev(), resulting in access to the freed adapter 
> memory.
> 
> Although igb_reset_task() checks __IGB_DOWN, checking the bit already 
> dereferences the adapter and therefore cannot protect its lifetime.
> 
> Disable the watchdog work first and the reset work second in both drivers.
> Disabling the work items also prevents racing attempts to queue them during 
> device removal.
> 
> Fixes: 760141a53e5d ("igb[v],ixgbe: don't use flush_scheduled_work()")
> Cc: [email protected]
> Signed-off-by: Xuanqiang Luo <[email protected]>
> ---
>  drivers/net/ethernet/intel/igb/igb_main.c | 4 ++--  
> drivers/net/ethernet/intel/igbvf/netdev.c | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)

Tested-by: Alexander Nowlin <[email protected]>

Reply via email to