> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Jedrzej Jagielski
> Sent: Thursday, July 2, 2026 11:16 AM
> To: [email protected]
> Cc: Nguyen, Anthony L <[email protected]>;
> [email protected]; Jagielski, Jedrzej
> <[email protected]>
> Subject: [Intel-wired-lan] [PATCH iwl-next v1 6/6] ixgbe: take rtnl
> lock before ixgbe_reset() is called
>
> Previous commit introduced ixgbe_mac_addr_refresh which touches netdev
> struct by updating mac addr. It should operate after taking rtnl lock.
> One of the callers is ixgbe_reset(). Most of scenarios when
> ixgbe_reset() is called met taking lock requirement, but there is a
> ixgbe_resume() path which calls ixgbe_reset() ->
> ixgbe_mac_addr_refresh() without taking the lock. So there is a risk
> of race.
>
> Move rtnl_lock() before ixgbe_reset() is called.
>
> Signed-off-by: Jedrzej Jagielski <[email protected]>
> ---
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index ce2b1e208c0f..c7261eb0e9b0 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -7574,11 +7574,11 @@ static int ixgbe_resume(struct device *dev_d)
>
> device_wakeup_disable(dev_d);
>
> + rtnl_lock();
> ixgbe_reset(adapter);
>
> IXGBE_WRITE_REG(&adapter->hw, IXGBE_WUS, ~0);
>
> - rtnl_lock();
> err = ixgbe_init_interrupt_scheme(adapter);
> if (!err && netif_running(netdev))
> err = ixgbe_open(netdev);
> --
> 2.31.1
Reviewed-by: Aleksandr Loktionov <[email protected]>