> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of I Viswanath
> Sent: Saturday, March 14, 2026 7:28 PM
> To: [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; Kitszel, Przemyslaw
> <[email protected]>; Nguyen, Anthony L
> <[email protected]>; Keller, Jacob E
> <[email protected]>; [email protected];
> [email protected]
> Cc: [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; I Viswanath
> <[email protected]>
> Subject: [Intel-wired-lan] [PATCH net-next v9 4/7] e1000: Implement
> ndo_set_rx_mode_async callback
>
> Implement the ndo_set_rx_mode_async callback and update the driver to
> use the snapshot/commit model for RX mode update.
>
> Signed-off-by: I Viswanath <[email protected]>
> ---
>
> Call paths involving netif_set_rx_mode in e1000
>
> netif_set_rx_mode
> |-- __e1000_shutdown (lock added)
> |
> `-- e1000_configure
> |-- e1000_open (ndo_open, takes lock)
> |
> `-- e1000_up
> |-- e1000_reinit_locked
> | |-- e1000_set_features (ndo_set_features, takes lock)
> | |-- e1000_reset_task (ethtool callback, takes lock)
> | |-- e1000_mii_ioctl
> | | `-- e1000_ioctl (ndo_do_ioctl, takes lock)
> | `-- e1000_nway_reset (ethtool callback, takes lock)
> |
> |-- e1000_change_mtu (ndo_change_mtu, takes lock)
> |-- e1000_resume (lock added)
> |-- e1000_io_resume (lock added)
> |
> |-- e1000_set_link_ksettings (ethtool callback, takes lock)
> |-- e1000_set_pauseparam (ethtool callback, takes lock)
> `-- e1000_set_ringparam (ethtool callback, takes lock)
>
> drivers/net/ethernet/intel/e1000/e1000_main.c | 77 ++++++++++++++----
> -
> 1 file changed, 59 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c
> b/drivers/net/ethernet/intel/e1000/e1000_main.c
> index 9b09eb144b81..ec25b41c63b7 100644
> --- a/drivers/net/ethernet/intel/e1000/e1000_main.c
> +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
> @@ -99,6 +99,7 @@ static void e1000_clean_tx_ring(struct e1000_adapter
> *adapter, static void e1000_clean_rx_ring(struct e1000_adapter
> *adapter,
> struct e1000_rx_ring *rx_ring);
> static void e1000_set_rx_mode(struct net_device *netdev);
> +static void e1000_set_rx_mode_async(struct net_device *netdev);
> static void e1000_update_phy_info_task(struct work_struct *work);
> static void e1000_watchdog(struct work_struct *work); static void
> e1000_82547_tx_fifo_stall_task(struct work_struct *work); @@ -359,7
> +360,7 @@ static void e1000_configure(struct e1000_adapter *adapter)
> struct net_device *netdev = adapter->netdev;
> int i;
>
...
> }
> --
> 2.47.3
Reviewed-by: Aleksandr Loktionov <[email protected]>