Skip to content

Commit 00a2b7c

Browse files
author
Marc Zyngier
committed
Merge branch irq/bitmap_zalloc into irq/irqchip-next
irqchip-wide replacement of bitmap allocation using kcalloc() and co with bitmap-specific allocators (Andy Shevchenko) * irq/bitmap_zalloc: irqchip/mvebu-odmi: Switch to bitmap_zalloc() irqchip/mvebu-gicp: Switch to devm_bitmap_zalloc() irqchip/ls-scfg-msi: Switch to devm_bitmap_zalloc() irqchip/gic-v3: Switch to bitmap_zalloc() irqchip/gic-v2m: Switch to bitmap_zalloc() irqchip/alpine-msi: Switch to bitmap_zalloc() irqchip/partitions: Switch to bitmap_zalloc() Signed-off-by: Marc Zyngier <[email protected]>
2 parents ff11764 + c980983 commit 00a2b7c

File tree

8 files changed

+14
-25
lines changed

8 files changed

+14
-25
lines changed

drivers/irqchip/irq-alpine-msi.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -267,9 +267,7 @@ static int alpine_msix_init(struct device_node *node,
267267
goto err_priv;
268268
}
269269

270-
priv->msi_map = kcalloc(BITS_TO_LONGS(priv->num_spis),
271-
sizeof(*priv->msi_map),
272-
GFP_KERNEL);
270+
priv->msi_map = bitmap_zalloc(priv->num_spis, GFP_KERNEL);
273271
if (!priv->msi_map) {
274272
ret = -ENOMEM;
275273
goto err_priv;
@@ -285,7 +283,7 @@ static int alpine_msix_init(struct device_node *node,
285283
return 0;
286284

287285
err_map:
288-
kfree(priv->msi_map);
286+
bitmap_free(priv->msi_map);
289287
err_priv:
290288
kfree(priv);
291289
return ret;

drivers/irqchip/irq-gic-v2m.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ static void gicv2m_teardown(void)
269269

270270
list_for_each_entry_safe(v2m, tmp, &v2m_nodes, entry) {
271271
list_del(&v2m->entry);
272-
kfree(v2m->bm);
272+
bitmap_free(v2m->bm);
273273
iounmap(v2m->base);
274274
of_node_put(to_of_node(v2m->fwnode));
275275
if (is_fwnode_irqchip(v2m->fwnode))
@@ -386,8 +386,7 @@ static int __init gicv2m_init_one(struct fwnode_handle *fwnode,
386386
break;
387387
}
388388
}
389-
v2m->bm = kcalloc(BITS_TO_LONGS(v2m->nr_spis), sizeof(long),
390-
GFP_KERNEL);
389+
v2m->bm = bitmap_zalloc(v2m->nr_spis, GFP_KERNEL);
391390
if (!v2m->bm) {
392391
ret = -ENOMEM;
393392
goto err_iounmap;

drivers/irqchip/irq-gic-v3-its.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2140,7 +2140,7 @@ static unsigned long *its_lpi_alloc(int nr_irqs, u32 *base, int *nr_ids)
21402140
if (err)
21412141
goto out;
21422142

2143-
bitmap = kcalloc(BITS_TO_LONGS(nr_irqs), sizeof (long), GFP_ATOMIC);
2143+
bitmap = bitmap_zalloc(nr_irqs, GFP_ATOMIC);
21442144
if (!bitmap)
21452145
goto out;
21462146

@@ -2156,7 +2156,7 @@ static unsigned long *its_lpi_alloc(int nr_irqs, u32 *base, int *nr_ids)
21562156
static void its_lpi_free(unsigned long *bitmap, u32 base, u32 nr_ids)
21572157
{
21582158
WARN_ON(free_lpi_range(base, nr_ids));
2159-
kfree(bitmap);
2159+
bitmap_free(bitmap);
21602160
}
21612161

21622162
static void gic_reset_prop_table(void *va)
@@ -3387,7 +3387,7 @@ static struct its_device *its_create_device(struct its_node *its, u32 dev_id,
33873387
if (!dev || !itt || !col_map || (!lpi_map && alloc_lpis)) {
33883388
kfree(dev);
33893389
kfree(itt);
3390-
kfree(lpi_map);
3390+
bitmap_free(lpi_map);
33913391
kfree(col_map);
33923392
return NULL;
33933393
}

drivers/irqchip/irq-gic-v3-mbi.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,7 @@ int __init mbi_init(struct fwnode_handle *fwnode, struct irq_domain *parent)
290290
if (ret)
291291
goto err_free_mbi;
292292

293-
mbi_ranges[n].bm = kcalloc(BITS_TO_LONGS(mbi_ranges[n].nr_spis),
294-
sizeof(long), GFP_KERNEL);
293+
mbi_ranges[n].bm = bitmap_zalloc(mbi_ranges[n].nr_spis, GFP_KERNEL);
295294
if (!mbi_ranges[n].bm) {
296295
ret = -ENOMEM;
297296
goto err_free_mbi;
@@ -329,7 +328,7 @@ int __init mbi_init(struct fwnode_handle *fwnode, struct irq_domain *parent)
329328
err_free_mbi:
330329
if (mbi_ranges) {
331330
for (n = 0; n < mbi_range_nr; n++)
332-
kfree(mbi_ranges[n].bm);
331+
bitmap_free(mbi_ranges[n].bm);
333332
kfree(mbi_ranges);
334333
}
335334

drivers/irqchip/irq-ls-scfg-msi.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -362,10 +362,7 @@ static int ls_scfg_msi_probe(struct platform_device *pdev)
362362

363363
msi_data->irqs_num = MSI_IRQS_PER_MSIR *
364364
(1 << msi_data->cfg->ibs_shift);
365-
msi_data->used = devm_kcalloc(&pdev->dev,
366-
BITS_TO_LONGS(msi_data->irqs_num),
367-
sizeof(*msi_data->used),
368-
GFP_KERNEL);
365+
msi_data->used = devm_bitmap_zalloc(&pdev->dev, msi_data->irqs_num, GFP_KERNEL);
369366
if (!msi_data->used)
370367
return -ENOMEM;
371368
/*

drivers/irqchip/irq-mvebu-gicp.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,7 @@ static int mvebu_gicp_probe(struct platform_device *pdev)
210210
gicp->spi_cnt += gicp->spi_ranges[i].count;
211211
}
212212

213-
gicp->spi_bitmap = devm_kcalloc(&pdev->dev,
214-
BITS_TO_LONGS(gicp->spi_cnt), sizeof(long),
215-
GFP_KERNEL);
213+
gicp->spi_bitmap = devm_bitmap_zalloc(&pdev->dev, gicp->spi_cnt, GFP_KERNEL);
216214
if (!gicp->spi_bitmap)
217215
return -ENOMEM;
218216

drivers/irqchip/irq-mvebu-odmi.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,7 @@ static int __init mvebu_odmi_init(struct device_node *node,
171171
if (!odmis)
172172
return -ENOMEM;
173173

174-
odmis_bm = kcalloc(BITS_TO_LONGS(odmis_count * NODMIS_PER_FRAME),
175-
sizeof(long), GFP_KERNEL);
174+
odmis_bm = bitmap_zalloc(odmis_count * NODMIS_PER_FRAME, GFP_KERNEL);
176175
if (!odmis_bm) {
177176
ret = -ENOMEM;
178177
goto err_alloc;
@@ -227,7 +226,7 @@ static int __init mvebu_odmi_init(struct device_node *node,
227226
if (odmi->base && !IS_ERR(odmi->base))
228227
iounmap(odmis[i].base);
229228
}
230-
kfree(odmis_bm);
229+
bitmap_free(odmis_bm);
231230
err_alloc:
232231
kfree(odmis);
233232
return ret;

drivers/irqchip/irq-partition-percpu.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,7 @@ struct partition_desc *partition_create_desc(struct fwnode_handle *fwnode,
215215
goto out;
216216
desc->domain = d;
217217

218-
desc->bitmap = kcalloc(BITS_TO_LONGS(nr_parts), sizeof(long),
219-
GFP_KERNEL);
218+
desc->bitmap = bitmap_zalloc(nr_parts, GFP_KERNEL);
220219
if (WARN_ON(!desc->bitmap))
221220
goto out;
222221

0 commit comments

Comments
 (0)