On 03/19, Loktionov, Aleksandr wrote: > > > > -----Original Message----- > > From: Intel-wired-lan <[email protected]> On Behalf > > Of Stanislav Fomichev > > Sent: Wednesday, March 18, 2026 4:03 PM > > To: [email protected] > > Cc: [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; > > [email protected]; [email protected]; Nguyen, Anthony > > L <[email protected]>; Kitszel, Przemyslaw > > <[email protected]>; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; Keller, > > Jacob E <[email protected]>; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; linux- > > [email protected]; [email protected]; linux- > > [email protected]; [email protected] > > 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+ > > [email protected]/ > > > > Cc: Michael Chan <[email protected]> > > Cc: Pavan Chebbi <[email protected]> > > Signed-off-by: Stanislav Fomichev <[email protected]> > > --- > > drivers/net/ethernet/broadcom/bnxt/bnxt.c | 24 ++++++++++++++-------- > > - > > 1 file changed, 15 insertions(+), 9 deletions(-) > > ... > > > -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- > > >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).
