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: <f5ec8890-c2e2-482e-a913-8cf943f5966f@intel.com>
Date: Fri, 21 Nov 2025 13:27:27 -0800
From: Tony Nguyen <anthony.l.nguyen@...el.com>
To: Sreedevi Joshi <sreedevi.joshi@...el.com>,
	<intel-wired-lan@...ts.osuosl.org>
CC: <netdev@...r.kernel.org>, Aleksandr Loktionov
	<aleksandr.loktionov@...el.com>, Sridhar Samudrala
	<sridhar.samudrala@...el.com>, Emil Tantilov <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?

>    */
>   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

>   	}
>   
>   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