Message ID | 4c93b4e02f5d784ddfd3efd4af9e673b9117d641.1637869328.git.christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | RDMA/mlx4: Use bitmap_alloc() when applicable | expand |
On Thu, 2021-11-25 at 20:42 +0100, Christophe JAILLET wrote: > Use 'bitmap_alloc()' to simplify code, improve the semantic and avoid some > open-coded arithmetic in allocator arguments. > > Also change the corresponding 'kfree()' into 'bitmap_free()' to keep > consistency. Thanks. > diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c [] > @@ -2784,10 +2784,8 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) > if (err) > goto err_counter; > > - ibdev->ib_uc_qpns_bitmap = > - kmalloc_array(BITS_TO_LONGS(ibdev->steer_qpn_count), > - sizeof(long), > - GFP_KERNEL); > + ibdev->ib_uc_qpns_bitmap = bitmap_alloc(ibdev->steer_qpn_count, > + GFP_KERNEL); I wonder if it'd be simpler/smaller to change this to bitmap_zalloc and remove the bitmap_zero in the if below.
Le 25/11/2021 à 20:58, Joe Perches a écrit : > On Thu, 2021-11-25 at 20:42 +0100, Christophe JAILLET wrote: >> Use 'bitmap_alloc()' to simplify code, improve the semantic and avoid some >> open-coded arithmetic in allocator arguments. >> >> Also change the corresponding 'kfree()' into 'bitmap_free()' to keep >> consistency. > > Thanks. > >> diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c > [] >> @@ -2784,10 +2784,8 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) >> if (err) >> goto err_counter; >> >> - ibdev->ib_uc_qpns_bitmap = >> - kmalloc_array(BITS_TO_LONGS(ibdev->steer_qpn_count), >> - sizeof(long), >> - GFP_KERNEL); >> + ibdev->ib_uc_qpns_bitmap = bitmap_alloc(ibdev->steer_qpn_count, >> + GFP_KERNEL); > > I wonder if it'd be simpler/smaller to change this to bitmap_zalloc and > remove the bitmap_zero in the if below. > I asked myself the same question. It is easy to see that the bitmap is either cleared or set. So this is fine enough for me. Let see if a maintainer has a preference on it. CJ
On Thu, Nov 25, 2021 at 08:42:51PM +0100, Christophe JAILLET wrote: > Use 'bitmap_alloc()' to simplify code, improve the semantic and avoid some > open-coded arithmetic in allocator arguments. > > Also change the corresponding 'kfree()' into 'bitmap_free()' to keep > consistency. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > --- > drivers/infiniband/hw/mlx4/main.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) Applied to for-next, thanks Jason
diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c index 0d2fa3338784..d66ce7694bbe 100644 --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c @@ -2784,10 +2784,8 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) if (err) goto err_counter; - ibdev->ib_uc_qpns_bitmap = - kmalloc_array(BITS_TO_LONGS(ibdev->steer_qpn_count), - sizeof(long), - GFP_KERNEL); + ibdev->ib_uc_qpns_bitmap = bitmap_alloc(ibdev->steer_qpn_count, + GFP_KERNEL); if (!ibdev->ib_uc_qpns_bitmap) goto err_steer_qp_release; @@ -2875,7 +2873,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) mlx4_ib_diag_cleanup(ibdev); err_steer_free_bitmap: - kfree(ibdev->ib_uc_qpns_bitmap); + bitmap_free(ibdev->ib_uc_qpns_bitmap); err_steer_qp_release: mlx4_qp_release_range(dev, ibdev->steer_qpn_base, @@ -2988,7 +2986,7 @@ static void mlx4_ib_remove(struct mlx4_dev *dev, void *ibdev_ptr) mlx4_qp_release_range(dev, ibdev->steer_qpn_base, ibdev->steer_qpn_count); - kfree(ibdev->ib_uc_qpns_bitmap); + bitmap_free(ibdev->ib_uc_qpns_bitmap); iounmap(ibdev->uar_map); for (p = 0; p < ibdev->num_ports; ++p)
Use 'bitmap_alloc()' to simplify code, improve the semantic and avoid some open-coded arithmetic in allocator arguments. Also change the corresponding 'kfree()' into 'bitmap_free()' to keep consistency. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- drivers/infiniband/hw/mlx4/main.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)