net/mlx5: fix indexed pool local cache crash
Checks
Commit Message
Local cache for an indexed pool is not initialized in the situation when
all the indices are allocated on one CPU core and freed on another one.
That leads to a crash once we try to check its reference counter.
Check that the local cache is initialized before accessing this counter.
Fixes: d15c0946be ("net/mlx5: add indexed pool local cache")
Cc: stable@dpdk.org
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
---
drivers/net/mlx5/mlx5_utils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: Alexander Kozyrev <akozyrev@nvidia.com>
> Sent: Wednesday, November 9, 2022 14:58
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Matan Azrad <matan@nvidia.com>; Michael Baum
> <michaelba@nvidia.com>
> Subject: [PATCH] net/mlx5: fix indexed pool local cache crash
>
> Local cache for an indexed pool is not initialized in the situation when all
> the indices are allocated on one CPU core and freed on another one.
> That leads to a crash once we try to check its reference counter.
> Check that the local cache is initialized before accessing this counter.
>
> Fixes: d15c0946be ("net/mlx5: add indexed pool local cache")
> Cc: stable@dpdk.org
>
> Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Hi,
> -----Original Message-----
> From: Alexander Kozyrev <akozyrev@nvidia.com>
> Sent: Wednesday, November 9, 2022 2:58 PM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>; Slava
> Ovsiienko <viacheslavo@nvidia.com>; Matan Azrad <matan@nvidia.com>;
> Michael Baum <michaelba@nvidia.com>
> Subject: [PATCH] net/mlx5: fix indexed pool local cache crash
>
> Local cache for an indexed pool is not initialized in the situation when
> all the indices are allocated on one CPU core and freed on another one.
> That leads to a crash once we try to check its reference counter.
> Check that the local cache is initialized before accessing this counter.
>
> Fixes: d15c0946be ("net/mlx5: add indexed pool local cache")
> Cc: stable@dpdk.org
>
> Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
@@ -479,7 +479,7 @@ _mlx5_ipool_free_cache(struct mlx5_indexed_pool *pool, int cidx, uint32_t idx)
mlx5_ipool_lock(pool);
gc = pool->gc;
if (ilc->lc != gc) {
- if (!(--ilc->lc->ref_cnt))
+ if (ilc->lc && !(--ilc->lc->ref_cnt))
olc = ilc->lc;
gc->ref_cnt++;
ilc->lc = gc;