[PATCH] net/ice: fix rss simple_xor hash function

Burakov, Anatoly anatoly.burakov at intel.com
Mon Mar 9 11:19:09 CET 2026


On 3/9/2026 3:32 AM, Anurag Mandal wrote:
> RSS Simple XOR hash function is supported by the NIC
> as per datasheet & also in ICE Linux Ethernet kernel
> driver but the same is not enabled in ICE PMD even
> though code support is already present.
> 
> This patch fixes the issue by removing the simple_xor
> check & adding proper error log for empty argument.
> 
> Bugzilla ID: 1518
> Fixes: 0b952714e9c1 ("net/ice: refactor PF hash flow")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Anurag Mandal <anurag.mandal at intel.com>
> ---

Hi,

>   drivers/net/intel/ice/ice_hash.c | 9 ++++-----
>   1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/intel/ice/ice_hash.c b/drivers/net/intel/ice/ice_hash.c
> index 77829e607b..d57b5ee0e4 100644
> --- a/drivers/net/intel/ice/ice_hash.c
> +++ b/drivers/net/intel/ice/ice_hash.c
> @@ -1109,12 +1109,11 @@ ice_hash_parse_action(struct ice_pattern_match_item *pattern_match_item,
>   			rss_type = rss->types;
>   
>   			/* Check hash function and save it to rss_meta. */
> -			if (pattern_match_item->pattern_list !=
> -			    pattern_empty && rss->func ==
> -			    RTE_ETH_HASH_FUNCTION_SIMPLE_XOR) {
> -				return rte_flow_error_set(error, ENOTSUP,
> +			if (pattern_match_item->pattern_list ==
> +			    pattern_empty) {
> +				return rte_flow_error_set(error, EINVAL,
>   					RTE_FLOW_ERROR_TYPE_ACTION, action,
> -					"Not supported flow");
> +					"Invalid empty argument");

I think this changes existing semantics a little too far.

The original code disallowed simple XOR only for cases where pattern 
wasn't empty (if it was, we allowed it - i.e. if it was a global RSS 
configuration). The fix disallows empty patterns altogether, whereas 
what it should've done instead is remove this check, and instead modify 
the second check to look for empty patterns (because otherwise we would 
go through further checks down the line for non-empty patterns).

>   			} else if (rss->func ==
>   				   RTE_ETH_HASH_FUNCTION_SIMPLE_XOR){
>   				rss_meta->hash_function =


-- 
Thanks,
Anatoly


More information about the dev mailing list