> -----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]>
