net/mlx4: fix default in RSS converter
authorAdrien Mazarguil <adrien.mazarguil@6wind.com>
Mon, 21 May 2018 15:50:09 +0000 (17:50 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 22 May 2018 22:35:01 +0000 (00:35 +0200)
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")
Cc: stable@dpdk.org
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
drivers/net/mlx4/mlx4_flow.c
drivers/net/mlx4/mlx4_flow.h

index 202779f..ebc9eeb 100644 (file)
@@ -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,
index d1f1611..2e82903 100644 (file)
@@ -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);