diff options
author | Christophe JAILLET <christophe.jaillet@wanadoo.fr> | 2022-07-08 18:47:27 +0200 |
---|---|---|
committer | Leon Romanovsky <leonro@nvidia.com> | 2022-07-18 11:03:21 +0200 |
commit | e471eedd94d95a183ed57f5875ec1a476f1442a4 (patch) | |
tree | 5b8e6fd0a060036b20b0fa6fd076f45500ad4af8 /drivers/infiniband/ulp/rtrs | |
parent | RDMA/qib: Use the bitmap API to allocate bitmaps (diff) | |
download | linux-e471eedd94d95a183ed57f5875ec1a476f1442a4.tar.xz linux-e471eedd94d95a183ed57f5875ec1a476f1442a4.zip |
RDMA/rtrs-clt: Use the bitmap API to allocate bitmaps
Use bitmap_zalloc()/bitmap_free() instead of hand-writing them.
It is less verbose and it improves the semantic.
Link: https://lore.kernel.org/r/ca9c5c8301d76d60de34640568b3db0d4401d050.1657298747.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'drivers/infiniband/ulp/rtrs')
-rw-r--r-- | drivers/infiniband/ulp/rtrs/rtrs-clt.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c index 9809c3883979..06c27a3d83f5 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c @@ -1403,8 +1403,7 @@ static int alloc_permits(struct rtrs_clt_sess *clt) unsigned int chunk_bits; int err, i; - clt->permits_map = kcalloc(BITS_TO_LONGS(clt->queue_depth), - sizeof(long), GFP_KERNEL); + clt->permits_map = bitmap_zalloc(clt->queue_depth, GFP_KERNEL); if (!clt->permits_map) { err = -ENOMEM; goto out_err; @@ -1426,7 +1425,7 @@ static int alloc_permits(struct rtrs_clt_sess *clt) return 0; err_map: - kfree(clt->permits_map); + bitmap_free(clt->permits_map); clt->permits_map = NULL; out_err: return err; @@ -1440,7 +1439,7 @@ static void free_permits(struct rtrs_clt_sess *clt) wait_event(clt->permits_wait, find_first_bit(clt->permits_map, sz) >= sz); } - kfree(clt->permits_map); + bitmap_free(clt->permits_map); clt->permits_map = NULL; kfree(clt->permits); clt->permits = NULL; |