[dpdk-dev] [PATCH v2 1/2] net/mlx4: fix inadequate default in RSS converter

Adrien Mazarguil adrien.mazarguil at 6wind.com
Mon May 21 17:50:09 CEST 2018


Below commit documents 0 as a value standing for a default set of RSS hash
types, however the mlx4 PMD doesn't interpret it correctly and still uses
its own internal special value for that (-1).

Also, its function prototype was not updated.

Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API")
Fixes: 1d173da83ef2 ("net/mlx4: fix default RSS hash fields")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>

--

This is a rework of "net/mlx4: fix useless default in RSS converter" [1].

Not a candidate for stable anymore since DPDK 18.02 does not include the
flow API RSS rework.

[1] http://dpdk.org/ml/archives/dev/2018-May/100285.html
---
 drivers/net/mlx4/mlx4_flow.c | 6 +++---
 drivers/net/mlx4/mlx4_flow.h | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c
index 202779f7d..ebc9eeb8b 100644
--- a/drivers/net/mlx4/mlx4_flow.c
+++ b/drivers/net/mlx4/mlx4_flow.c
@@ -114,7 +114,7 @@ struct mlx4_drop {
  * Convert DPDK RSS hash types to their Verbs equivalent.
  *
  * This function returns the supported (default) set when @p types has
- * special value (uint64_t)-1.
+ * special value 0.
  *
  * @param priv
  *   Pointer to private structure.
@@ -160,7 +160,7 @@ mlx4_conv_rss_types(struct priv *priv, uint64_t types)
 	uint64_t conv = 0;
 	unsigned int i;
 
-	if (types == (uint64_t)-1)
+	if (!types)
 		return priv->hw_rss_sup;
 	for (i = 0; i != RTE_DIM(in); ++i)
 		if (types & in[i]) {
@@ -1384,7 +1384,7 @@ mlx4_flow_internal(struct priv *priv, struct rte_flow_error *error)
 	struct rte_flow_action_rss action_rss = {
 		.func = RTE_ETH_HASH_FUNCTION_DEFAULT,
 		.level = 0,
-		.types = -1,
+		.types = 0,
 		.key_len = MLX4_RSS_HASH_KEY_SIZE,
 		.queue_num = queues,
 		.key = mlx4_rss_hash_key_default,
diff --git a/drivers/net/mlx4/mlx4_flow.h b/drivers/net/mlx4/mlx4_flow.h
index d1f1611eb..2e82903bd 100644
--- a/drivers/net/mlx4/mlx4_flow.h
+++ b/drivers/net/mlx4/mlx4_flow.h
@@ -48,7 +48,7 @@ struct rte_flow {
 
 /* mlx4_flow.c */
 
-uint64_t mlx4_conv_rss_types(struct priv *priv, uint64_t rss_hf);
+uint64_t mlx4_conv_rss_types(struct priv *priv, uint64_t types);
 uint64_t mlx4_ibv_to_rss_types(uint64_t ibv_rss_types);
 int mlx4_flow_sync(struct priv *priv, struct rte_flow_error *error);
 void mlx4_flow_clean(struct priv *priv);
-- 
2.11.0


More information about the dev mailing list