scsi: hpsa: Use the bitmap API to allocate bitmaps
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Wed, 20 Jul 2022 18:13:54 +0000 (20:13 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 1 Sep 2022 04:45:12 +0000 (00:45 -0400)
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/5f975ef43f8b7306e4ac4e2e8ce4bcd53f6092bb.1658340441.git.christophe.jaillet@wanadoo.fr
Tested-by: Don Brace <don.brace@microchip.com>
Acked-by: Don Brace <don.brace@microchip.com>
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hpsa.c

index a47bcce3c9c78dc1b4c5d31b18f3672f6dffb962..0612ca681200e7609c4c615ea16020c9f2ff0942 100644 (file)
@@ -8030,7 +8030,7 @@ out_disable:
 
 static void hpsa_free_cmd_pool(struct ctlr_info *h)
 {
-       kfree(h->cmd_pool_bits);
+       bitmap_free(h->cmd_pool_bits);
        h->cmd_pool_bits = NULL;
        if (h->cmd_pool) {
                dma_free_coherent(&h->pdev->dev,
@@ -8052,9 +8052,7 @@ static void hpsa_free_cmd_pool(struct ctlr_info *h)
 
 static int hpsa_alloc_cmd_pool(struct ctlr_info *h)
 {
-       h->cmd_pool_bits = kcalloc(DIV_ROUND_UP(h->nr_cmds, BITS_PER_LONG),
-                                  sizeof(unsigned long),
-                                  GFP_KERNEL);
+       h->cmd_pool_bits = bitmap_zalloc(h->nr_cmds, GFP_KERNEL);
        h->cmd_pool = dma_alloc_coherent(&h->pdev->dev,
                    h->nr_cmds * sizeof(*h->cmd_pool),
                    &h->cmd_pool_dhandle, GFP_KERNEL);