On Wed, Dec 17, 2025 at 11:37:32AM +0000, Loktionov, Aleksandr wrote: > > > > -----Original Message----- > > From: Intel-wired-lan <[email protected]> On Behalf > > Of Yury Norov (NVIDIA) > > Sent: Tuesday, December 16, 2025 1:29 AM > > To: Nguyen, Anthony L <[email protected]>; Kitszel, > > Przemyslaw <[email protected]>; Andrew Lunn > > <[email protected]>; David S. Miller <[email protected]>; Eric > > Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo > > Abeni <[email protected]>; [email protected]; > > [email protected]; [email protected] > > Cc: Yury Norov (NVIDIA) <[email protected]> > > Subject: [Intel-wired-lan] [PATCH] i40e: drop useless bitmap_weight() > > call in i40e_set_rxfh_fields() > > > > bitmap_weight() is O(N) and useless here, because the following > > for_each_set_bit() returns immediately in case of empty flow_pctypes. > > > > Signed-off-by: Yury Norov (NVIDIA) <[email protected]> > > --- > > .../net/ethernet/intel/i40e/i40e_ethtool.c | 24 ++++++++---------- > > - > > 1 file changed, 10 insertions(+), 14 deletions(-) > > > > diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > > b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > > index f2c2646ea298..54b0348fdee3 100644 > > --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > > +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > > @@ -3720,20 +3720,16 @@ static int i40e_set_rxfh_fields(struct > > net_device *netdev, > > return -EINVAL; > > } > > > > - if (bitmap_weight(flow_pctypes, FLOW_PCTYPES_SIZE)) { > > - u8 flow_id; > > - > > - for_each_set_bit(flow_id, flow_pctypes, > > FLOW_PCTYPES_SIZE) { > > - i_setc = (u64)i40e_read_rx_ctl(hw, > > I40E_GLQF_HASH_INSET(0, flow_id)) | > > - ((u64)i40e_read_rx_ctl(hw, > > I40E_GLQF_HASH_INSET(1, flow_id)) << 32); > > - i_set = i40e_get_rss_hash_bits(&pf->hw, nfc, > > i_setc); > > - > > - i40e_write_rx_ctl(hw, I40E_GLQF_HASH_INSET(0, > > flow_id), > > - (u32)i_set); > > - i40e_write_rx_ctl(hw, I40E_GLQF_HASH_INSET(1, > > flow_id), > > - (u32)(i_set >> 32)); > > - hena |= BIT_ULL(flow_id); > > - } > > + for_each_set_bit(flow_id, flow_pctypes, FLOW_PCTYPES_SIZE) { > You removed the flow_id declaration, but use it in the code below. > Are you sure it compiles?
No it doesn't. I'll send the right version shortly. Sorry for this noise. Thanks, Yury
