net/mlx5: fix validation of Rx queue number
authorDekel Peled <dekelp@mellanox.com>
Wed, 28 Nov 2018 09:16:17 +0000 (11:16 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 13 Dec 2018 17:44:52 +0000 (17:44 +0000)
commit8dd569abad0802f2e5adb0a4ac2483a07555ac89
treecae0de50344ea632c05a7aeeb42508e1a4c104a0
parent38827a04812c232ef10ec2d7cde1ca133923c225
net/mlx5: fix validation of Rx queue number

Function mlx5_ctrl_flow_vlan() is used to set the rss rule in
MLX5 PMD, using priv->reta_idx_n as number of Rx queues.
This number is passed to mlx5_flow_validate_action_rss(), which
attempts to access the Rx queues at priv->rxqs.
In case priv->rxqs_n is 0, priv->rxqs is empty, and
mlx5_flow_validate_action_rss() will crash with segmentation fault.

priv->reta_idx_n can never be 0, even if priv->rxqs_n is set to 0.
But when priv->rxqs_n is set to 0, setting the rss rule is invalid.

This patch updates mlx5_ctrl_flow_vlan(), if priv->rxqs_n is 0 the
function will fail with EINVAL errno.

Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")
Cc: stable@dpdk.org
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
drivers/net/mlx5/mlx5_flow.c