Thread (27 messages) 27 messages, 4 authors, 2026-03-23

Re: [Intel-wired-lan] [PATCH net-next v2 08/13] bnxt: use snapshot in bnxt_cfg_rx_mode

From: Stanislav Fomichev <hidden>
Date: 2026-03-19 15:54:30
Also in: intel-wired-lan, linux-doc, linux-kselftest, linux-rdma, linux-wireless, lkml

On 03/19, Loktionov, Aleksandr wrote:
quoted
-----Original Message-----
From: Intel-wired-lan <redacted> On Behalf
Of Stanislav Fomichev
Sent: Wednesday, March 18, 2026 4:03 PM
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; 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: [Intel-wired-lan] [PATCH net-next v2 08/13] bnxt: use
snapshot in bnxt_cfg_rx_mode

With the introduction of ndo_set_rx_mode_async (as discussed in [0])
we can call bnxt_cfg_rx_mode directly. Convert bnxt_cfg_rx_mode to use
uc/mc snapshots and move its call in bnxt_sp_task to the section that
resets BNXT_STATE_IN_SP_TASK. Switch to direct call in
bnxt_set_rx_mode.

0:
https://lore.kernel.org/netdev/CACKFLi=5vj8hPqEUKDd8RTw3au5G+zRgQEqjF+
6NZnyoNm90KA@mail.gmail.com/

Cc: Michael Chan <michael.chan@broadcom.com>
Cc: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 24 ++++++++++++++--------
-
 1 file changed, 15 insertions(+), 9 deletions(-)
...
quoted
-static int bnxt_cfg_rx_mode(struct bnxt *bp)
+static int bnxt_cfg_rx_mode(struct bnxt *bp, struct
netdev_hw_addr_list *uc,
+			    struct netdev_hw_addr_list *mc)
 {
 	struct net_device *dev = bp->dev;
 	struct bnxt_vnic_info *vnic = &bp-
quoted
vnic_info[BNXT_VNIC_DEFAULT];
@@ -13623,7 +13625,7 @@ static int bnxt_cfg_rx_mode(struct bnxt *bp)
 	bool uc_update;

 	netif_addr_lock_bh(dev);
-	uc_update = bnxt_uc_list_updated(bp, &dev->uc);
+	uc_update = bnxt_uc_list_updated(bp, uc);
 	netif_addr_unlock_bh(dev);

 	if (!uc_update)
@@ -13642,7 +13644,7 @@ static int bnxt_cfg_rx_mode(struct bnxt *bp)
 	if (netdev_uc_count(dev) > (BNXT_MAX_UC_ADDRS - 1)) {
 		vnic->rx_mask |=
CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS;
This limit check uses the live device list, dev->uc.
In the new async model, the live list can differ from the snapshot.
Oh, yes, good catch! Will do s/netdev_uc_count/netdev_hw_addr_list_count(uc).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help