net/mlx5: fix allocation size of RQT attribute
authorOri Kam <orika@mellanox.com>
Thu, 26 Sep 2019 10:22:15 +0000 (10:22 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 23 Oct 2019 14:43:08 +0000 (16:43 +0200)
The receive queues list size is based on the size of uint32_t, so
when allocating the memory, the correct value should be used. Or
else there is risk to corrupt the memory, depending on the queues
number, because there is some pad area for alignment. If the queue
number is not large enough, the issue couldn't be observed.

Fixes: dc9ceff73c99 ("net/mlx5: create advanced RxQ via DevX")
Cc: stable@dpdk.org
Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
drivers/net/mlx5/mlx5_rxq.c

index a1fdeef..0db065a 100644 (file)
@@ -1936,7 +1936,7 @@ mlx5_ind_table_obj_new(struct rte_eth_dev *dev, const uint16_t *queues,
                struct mlx5_devx_rqt_attr *rqt_attr = NULL;
 
                rqt_attr = rte_calloc(__func__, 1, sizeof(*rqt_attr) +
-                                     queues_n * sizeof(uint16_t), 0);
+                                     queues_n * sizeof(uint32_t), 0);
                if (!rqt_attr) {
                        DRV_LOG(ERR, "port %u cannot allocate RQT resources",
                                dev->data->port_id);