net/mlx5: fix the alloc size of rqt attribute
Checks
Commit Message
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.
Based on Bing fix.
Fixes: dc9ceff73c99 ("net/mlx5: create advanced RxQ via DevX")
Cc: dekelp@mellanox.com
Signed-off-by: Ori Kam <orika@mellanox.com>
---
drivers/net/mlx5/mlx5_rxq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Ori Kam
> Sent: Thursday, September 26, 2019 13:22
> To: Matan Azrad <matan@mellanox.com>
> Cc: dev@dpdk.org; Ori Kam <orika@mellanox.com>; Dekel Peled
> <dekelp@mellanox.com>
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix the alloc size of rqt attribute
>
> 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.
>
> Based on Bing fix.
>
> Fixes: dc9ceff73c99 ("net/mlx5: create advanced RxQ via DevX")
> Cc: dekelp@mellanox.com
>
> Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> ---
> drivers/net/mlx5/mlx5_rxq.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index
> a1fdeef..0db065a 100644
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> @@ -1936,7 +1936,7 @@ struct mlx5_rxq_ctrl *
> 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);
> --
> 1.8.3.1
Hi,
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Ori Kam
> Sent: Thursday, September 26, 2019 1:22 PM
> To: Matan Azrad <matan@mellanox.com>
> Cc: dev@dpdk.org; Ori Kam <orika@mellanox.com>; Dekel Peled
> <dekelp@mellanox.com>
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix the alloc size of rqt attribute
>
> 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.
>
> Based on Bing fix.
>
> Fixes: dc9ceff73c99 ("net/mlx5: create advanced RxQ via DevX")
> Cc: dekelp@mellanox.com
>
> Signed-off-by: Ori Kam <orika@mellanox.com>
Added Cc: stable@dpdk.org
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
On 9/26/2019 11:22 AM, Ori Kam wrote:
> 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.
>
> Based on Bing fix.
>
Bing fix?
Hi Ferruh,
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit
> Sent: Tuesday, October 8, 2019 3:33 PM
> To: Ori Kam <orika@mellanox.com>; Matan Azrad <matan@mellanox.com>
> Cc: dev@dpdk.org; Dekel Peled <dekelp@mellanox.com>
> Subject: Re: [dpdk-dev] [PATCH] net/mlx5: fix the alloc size of rqt attribute
>
> On 9/26/2019 11:22 AM, Ori Kam wrote:
> > 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.
> >
> > Based on Bing fix.
> >
>
> Bing fix?
I've simply removed this from the commit log after having a talk to Ori since he is on vacation.
It's just something left which is not necessary
Kindest regards,
Raslan Darawsheh
@@ -1936,7 +1936,7 @@ struct mlx5_rxq_ctrl *
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);