net/mlx5: Use the bitmap API to allocate bitmaps
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 10 Jul 2022 12:36:22 +0000 (14:36 +0200)
committerSaeed Mahameed <saeedm@nvidia.com>
Wed, 13 Jul 2022 22:56:44 +0000 (15:56 -0700)
Use bitmap_zalloc()/bitmap_free() instead of hand-writing them.

It is less verbose and it improves the semantic.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c

index 7e02cbe8c3b91c075260d878f7bdf0865f446386..9482e51ac82a585779bf81b92ec00e8f33595f9f 100644 (file)
@@ -38,8 +38,7 @@ struct mlx5_dm *mlx5_dm_create(struct mlx5_core_dev *dev)
                            MLX5_LOG_SW_ICM_BLOCK_SIZE(dev));
 
                dm->steering_sw_icm_alloc_blocks =
-                       kcalloc(BITS_TO_LONGS(steering_icm_blocks),
-                               sizeof(unsigned long), GFP_KERNEL);
+                       bitmap_zalloc(steering_icm_blocks, GFP_KERNEL);
                if (!dm->steering_sw_icm_alloc_blocks)
                        goto err_steering;
        }
@@ -50,8 +49,7 @@ struct mlx5_dm *mlx5_dm_create(struct mlx5_core_dev *dev)
                            MLX5_LOG_SW_ICM_BLOCK_SIZE(dev));
 
                dm->header_modify_sw_icm_alloc_blocks =
-                       kcalloc(BITS_TO_LONGS(header_modify_icm_blocks),
-                               sizeof(unsigned long), GFP_KERNEL);
+                       bitmap_zalloc(header_modify_icm_blocks, GFP_KERNEL);
                if (!dm->header_modify_sw_icm_alloc_blocks)
                        goto err_modify_hdr;
        }
@@ -66,8 +64,7 @@ struct mlx5_dm *mlx5_dm_create(struct mlx5_core_dev *dev)
                            MLX5_LOG_SW_ICM_BLOCK_SIZE(dev));
 
                dm->header_modify_pattern_sw_icm_alloc_blocks =
-                       kcalloc(BITS_TO_LONGS(header_modify_pattern_icm_blocks),
-                               sizeof(unsigned long), GFP_KERNEL);
+                       bitmap_zalloc(header_modify_pattern_icm_blocks, GFP_KERNEL);
                if (!dm->header_modify_pattern_sw_icm_alloc_blocks)
                        goto err_pattern;
        }
@@ -75,10 +72,10 @@ struct mlx5_dm *mlx5_dm_create(struct mlx5_core_dev *dev)
        return dm;
 
 err_pattern:
-       kfree(dm->header_modify_sw_icm_alloc_blocks);
+       bitmap_free(dm->header_modify_sw_icm_alloc_blocks);
 
 err_modify_hdr:
-       kfree(dm->steering_sw_icm_alloc_blocks);
+       bitmap_free(dm->steering_sw_icm_alloc_blocks);
 
 err_steering:
        kfree(dm);
@@ -97,7 +94,7 @@ void mlx5_dm_cleanup(struct mlx5_core_dev *dev)
                WARN_ON(!bitmap_empty(dm->steering_sw_icm_alloc_blocks,
                                      BIT(MLX5_CAP_DEV_MEM(dev, log_steering_sw_icm_size) -
                                          MLX5_LOG_SW_ICM_BLOCK_SIZE(dev))));
-               kfree(dm->steering_sw_icm_alloc_blocks);
+               bitmap_free(dm->steering_sw_icm_alloc_blocks);
        }
 
        if (dm->header_modify_sw_icm_alloc_blocks) {
@@ -105,7 +102,7 @@ void mlx5_dm_cleanup(struct mlx5_core_dev *dev)
                                      BIT(MLX5_CAP_DEV_MEM(dev,
                                                           log_header_modify_sw_icm_size) -
                                      MLX5_LOG_SW_ICM_BLOCK_SIZE(dev))));
-               kfree(dm->header_modify_sw_icm_alloc_blocks);
+               bitmap_free(dm->header_modify_sw_icm_alloc_blocks);
        }
 
        if (dm->header_modify_pattern_sw_icm_alloc_blocks) {
@@ -113,7 +110,7 @@ void mlx5_dm_cleanup(struct mlx5_core_dev *dev)
                                      BIT(MLX5_CAP_DEV_MEM(dev,
                                                           log_header_modify_pattern_sw_icm_size) -
                                          MLX5_LOG_SW_ICM_BLOCK_SIZE(dev))));
-               kfree(dm->header_modify_pattern_sw_icm_alloc_blocks);
+               bitmap_free(dm->header_modify_pattern_sw_icm_alloc_blocks);
        }
 
        kfree(dm);