lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <IA1PR11MB628988BEDBE721E28252D46D89D5A@IA1PR11MB6289.namprd11.prod.outlook.com>
Date: Fri, 21 Nov 2025 21:53:05 +0000
From: "Joshi, Sreedevi" <sreedevi.joshi@...el.com>
To: "Nguyen, Anthony L" <anthony.l.nguyen@...el.com>,
	"intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>, "Loktionov, Aleksandr"
	<aleksandr.loktionov@...el.com>, "Samudrala, Sridhar"
	<sridhar.samudrala@...el.com>, "Tantilov, Emil S" <emil.s.tantilov@...el.com>
Subject: RE: [PATCH iwl-net 2/3] idpf: Fix RSS LUT configuration on down
 interfaces

> -----Original Message-----
> From: Nguyen, Anthony L <anthony.l.nguyen@...el.com>
> Sent: Friday, November 21, 2025 4:27 PM
> To: Joshi, Sreedevi <sreedevi.joshi@...el.com>; intel-wired-lan@...ts.osuosl.org
> Cc: netdev@...r.kernel.org; Loktionov, Aleksandr <aleksandr.loktionov@...el.com>; Samudrala, Sridhar
> <sridhar.samudrala@...el.com>; Tantilov, Emil S <emil.s.tantilov@...el.com>
> Subject: Re: [PATCH iwl-net 2/3] idpf: Fix RSS LUT configuration on down interfaces
> 
> 
> 
> On 11/17/2025 8:22 PM, Sreedevi Joshi wrote:
> > RSS LUT provisioning and queries on a down interface currently return
> > silently without effect. Users should be able to configure RSS settings
> > even when the interface is down.
> >
> > Fix by maintaining RSS configuration changes in the driver's soft copy and
> > deferring HW programming until the interface comes up.
> >
> > Fixes: 02cbfba1add5 ("idpf: add ethtool callbacks")
> > Signed-off-by: Sreedevi Joshi <sreedevi.joshi@...el.com>
> > Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@...el.com>
> > Reviewed-by: Sridhar Samudrala <sridhar.samudrala@...el.com>
> > Reviewed-by: Emil Tantilov <emil.s.tantilov@...el.com>
> > ---
> >   drivers/net/ethernet/intel/idpf/idpf_ethtool.c | 17 +++++++++++------
> >   1 file changed, 11 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c
> > index 4c6e52253ae4..d9903a21972a 100644
> > --- a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c
> > +++ b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c
> > @@ -393,7 +393,10 @@ static u32 idpf_get_rxfh_indir_size(struct net_device *netdev)
> >    * @netdev: network interface device structure
> >    * @rxfh: pointer to param struct (indir, key, hfunc)
> >    *
> > - * Reads the indirection table directly from the hardware. Always returns 0.
> > + * RSS LUT and Key information are read from driver's cached
> > + * copy. When rxhash is off, rss lut will be displayed as zeros.
> > + *
> > + * Returns 0 on success.
> 
> Can you make this Return: to make kdoc happy?
Will do. 
BTW, looks like there are other occurrences of this in that file.
> 
> >    */
> >   static int idpf_get_rxfh(struct net_device *netdev,
> >   			 struct ethtool_rxfh_param *rxfh)
> > @@ -401,10 +404,13 @@ static int idpf_get_rxfh(struct net_device *netdev,
> >   	struct idpf_netdev_priv *np = netdev_priv(netdev);
> >   	struct idpf_rss_data *rss_data;
> >   	struct idpf_adapter *adapter;
> > +	struct idpf_vport *vport;
> > +	bool rxhash_ena;
> >   	int err = 0;
> >   	u16 i;
> >
> >   	idpf_vport_ctrl_lock(netdev);
> > +	vport = idpf_netdev_to_vport(netdev);
> >
> >   	adapter = np->adapter;
> >
> > @@ -414,9 +420,8 @@ static int idpf_get_rxfh(struct net_device *netdev,
> >   	}
> >
> >   	rss_data = &adapter->vport_config[np->vport_idx]->user_config.rss_data;
> > -	if (np->state != __IDPF_VPORT_UP)
> > -		goto unlock_mutex;
> >
> > +	rxhash_ena = idpf_is_feature_ena(vport, NETIF_F_RXHASH);
> >   	rxfh->hfunc = ETH_RSS_HASH_TOP;
> >
> >   	if (rxfh->key)
> > @@ -424,7 +429,7 @@ static int idpf_get_rxfh(struct net_device *netdev,
> >
> >   	if (rxfh->indir) {
> >   		for (i = 0; i < rss_data->rss_lut_size; i++)
> > -			rxfh->indir[i] = rss_data->rss_lut[i];
> > +			rxfh->indir[i] = (rxhash_ena) ? rss_data->rss_lut[i] : 0;
> 
> Parens not needed
Ok. Will fix.

Thanks for the review!
Regards,
Sreedevi
> 
> >   	}
> >
> >   unlock_mutex:
> > @@ -464,8 +469,6 @@ static int idpf_set_rxfh(struct net_device *netdev,
> >   	}
> >
> >   	rss_data = &adapter->vport_config[vport->idx]->user_config.rss_data;
> > -	if (np->state != __IDPF_VPORT_UP)
> > -		goto unlock_mutex;
> >
> >   	if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE &&
> >   	    rxfh->hfunc != ETH_RSS_HASH_TOP) {
> > @@ -481,6 +484,8 @@ static int idpf_set_rxfh(struct net_device *netdev,
> >   			rss_data->rss_lut[lut] = rxfh->indir[lut];
> >   	}
> >
> > +	if (np->state != __IDPF_VPORT_UP)
> > +		goto unlock_mutex;
> >   	err = idpf_config_rss(vport);
> >
> >   unlock_mutex:

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ