Thread (36 messages) 36 messages, 6 authors, 2026-03-25

RE: [PATCH net-next v3 09/13] iavf: convert to ndo_set_rx_mode_async

From: Loktionov, Aleksandr <hidden>
Date: 2026-03-20 07:53:27
Also in: intel-wired-lan, linux-doc, linux-kselftest, linux-rdma, linux-wireless, lkml

quoted hunk ↗ jump to hunk
-----Original Message-----
From: Stanislav Fomichev <sdf@fomichev.me>
Sent: Friday, March 20, 2026 2:25 AM
To: netdev@vger.kernel.org
Cc: davem@davemloft.net; edumazet@google.com; kuba@kernel.org;
pabeni@redhat.com; horms@kernel.org; corbet@lwn.net;
skhan@linuxfoundation.org; andrew+netdev@lunn.ch;
michael.chan@broadcom.com; pavan.chebbi@broadcom.com; Nguyen, Anthony
L [off-list ref]; Kitszel, Przemyslaw
[off-list ref]; saeedm@nvidia.com; tariqt@nvidia.com;
mbloch@nvidia.com; alexanderduyck@fb.com; kernel-team@meta.com;
johannes@sipsolutions.net; sd@queasysnail.net; jianbol@nvidia.com;
dtatulea@nvidia.com; sdf@fomichev.me; mohsin.bashr@gmail.com; Keller,
Jacob E [off-list ref]; willemb@google.com;
skhawaja@google.com; bestswngs@gmail.com; Loktionov, Aleksandr
[off-list ref]; kees@kernel.org; linux-
doc@vger.kernel.org; linux-kernel@vger.kernel.org; intel-wired-
lan@lists.osuosl.org; linux-rdma@vger.kernel.org; linux-
wireless@vger.kernel.org; linux-kselftest@vger.kernel.org;
leon@kernel.org
Subject: [PATCH net-next v3 09/13] iavf: convert to
ndo_set_rx_mode_async

Convert iavf from ndo_set_rx_mode to ndo_set_rx_mode_async.
iavf_set_rx_mode now takes explicit uc/mc list parameters and uses
__hw_addr_sync_dev on the snapshots instead of __dev_uc_sync and
__dev_mc_sync.

The iavf_configure internal caller passes the real lists directly.

Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
---
 drivers/net/ethernet/intel/iavf/iavf_main.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c
b/drivers/net/ethernet/intel/iavf/iavf_main.c
index 7925ee152c76..6632d35ad0fe 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_main.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
@@ -1147,14 +1147,18 @@ bool iavf_promiscuous_mode_changed(struct
iavf_adapter *adapter)
 /**
  * iavf_set_rx_mode - NDO callback to set the netdev filters
  * @netdev: network interface device structure
+ * @uc: snapshot of uc address list
+ * @mc: snapshot of mc address list
  **/
-static void iavf_set_rx_mode(struct net_device *netdev)
+static void iavf_set_rx_mode(struct net_device *netdev,
+			     struct netdev_hw_addr_list *uc,
+			     struct netdev_hw_addr_list *mc)
 {
 	struct iavf_adapter *adapter = netdev_priv(netdev);

 	spin_lock_bh(&adapter->mac_vlan_list_lock);
-	__dev_uc_sync(netdev, iavf_addr_sync, iavf_addr_unsync);
-	__dev_mc_sync(netdev, iavf_addr_sync, iavf_addr_unsync);
+	__hw_addr_sync_dev(uc, netdev, iavf_addr_sync,
iavf_addr_unsync);
+	__hw_addr_sync_dev(mc, netdev, iavf_addr_sync,
iavf_addr_unsync);
 	spin_unlock_bh(&adapter->mac_vlan_list_lock);

 	spin_lock_bh(&adapter->current_netdev_promisc_flags_lock);
@@ -1207,7 +1211,7 @@ static void iavf_configure(struct iavf_adapter
*adapter)
 	struct net_device *netdev = adapter->netdev;
 	int i;

-	iavf_set_rx_mode(netdev);
+	iavf_set_rx_mode(netdev, &netdev->uc, &netdev->mc);

 	iavf_configure_tx(adapter);
 	iavf_configure_rx(adapter);
@@ -5150,7 +5154,7 @@ static const struct net_device_ops
iavf_netdev_ops = {
 	.ndo_open		= iavf_open,
 	.ndo_stop		= iavf_close,
 	.ndo_start_xmit		= iavf_xmit_frame,
-	.ndo_set_rx_mode	= iavf_set_rx_mode,
+	.ndo_set_rx_mode_async	= iavf_set_rx_mode,
 	.ndo_validate_addr	= eth_validate_addr,
 	.ndo_set_mac_address	= iavf_set_mac,
 	.ndo_change_mtu		= iavf_change_mtu,
--
2.53.0
Reviewed-by: Aleksandr Loktionov <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help