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

Reply via email to