If RSS action contains non zero hash key length and NULL
key buffer pointer the default hash key should be used.
The check for the NULL pointer this was missing in the mlx4
PMD causing crash, for example, in testpmd with command:

flow validate 0 ingress group 0
  pattern eth / ipv4 / end
  actions rss queues 0 end key_len 40 / end

Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API")
Cc: sta...@dpdk.org

Signed-off-by: Viacheslav Ovsiienko <viachesl...@nvidia.com>
---
 drivers/net/mlx4/mlx4_flow.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c
index 43a65abcc0..71ea91b3fb 100644
--- a/drivers/net/mlx4/mlx4_flow.c
+++ b/drivers/net/mlx4/mlx4_flow.c
@@ -791,7 +791,8 @@ mlx4_flow_prepare(struct mlx4_priv *priv,
                        rss = action->conf;
                        /* Default RSS configuration if none is provided. */
                        if (rss->key_len) {
-                               rss_key = rss->key;
+                               rss_key = rss->key ?
+                                         rss->key : mlx4_rss_hash_key_default;
                                rss_key_len = rss->key_len;
                        } else {
                                rss_key = mlx4_rss_hash_key_default;
-- 
2.28.0

Reply via email to