net/mlx5: support zero size entry for indexed pool
authorXueming Li <xuemingl@nvidia.com>
Wed, 28 Oct 2020 09:33:23 +0000 (17:33 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 3 Nov 2020 22:35:04 +0000 (23:35 +0100)
To make indexed pool to be used as ID generator, this patch allows entry
size to be zero.

Signed-off-by: Xueming Li <xuemingl@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
drivers/net/mlx5/mlx5_utils.c

index 9a54fda..3a1f87a 100644 (file)
@@ -230,7 +230,7 @@ mlx5_ipool_create(struct mlx5_indexed_pool_config *cfg)
        struct mlx5_indexed_pool *pool;
        uint32_t i;
 
-       if (!cfg || !cfg->size || (!cfg->malloc ^ !cfg->free) ||
+       if (!cfg || (!cfg->malloc ^ !cfg->free) ||
            (cfg->trunk_size && ((cfg->trunk_size & (cfg->trunk_size - 1)) ||
            ((__builtin_ffs(cfg->trunk_size) + TRUNK_IDX_BITS) > 32))))
                return NULL;
@@ -391,7 +391,7 @@ mlx5_ipool_zmalloc(struct mlx5_indexed_pool *pool, uint32_t *idx)
 {
        void *entry = mlx5_ipool_malloc(pool, idx);
 
-       if (entry)
+       if (entry && pool->cfg.size)
                memset(entry, 0, pool->cfg.size);
        return entry;
 }