Re: [PATCH v2] coresight: Use devm_bitmap_zalloc when applicable

From: Mathieu Poirier
Date: Thu Nov 11 2021 - 13:25:39 EST


Hi Christophe,

On Wed, 3 Nov 2021 at 12:39, Christophe JAILLET
<christophe.jaillet@xxxxxxxxxx> wrote:
>
> 'drvdata->chs.guaranteed' is a bitmap. So use 'devm_bitmap_kzalloc()' to
> simplify code, improve the semantic and avoid some open-coded arithmetic
> in allocator arguments.
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
> ---
> v1 --> v2: remove the 'guaranteed' variable to be even less verbose
> ---
> drivers/hwtracing/coresight/coresight-stm.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/hwtracing/coresight/coresight-stm.c b/drivers/hwtracing/coresight/coresight-stm.c
> index 58062a5a8238..bb14a3a8a921 100644
> --- a/drivers/hwtracing/coresight/coresight-stm.c
> +++ b/drivers/hwtracing/coresight/coresight-stm.c
> @@ -856,13 +856,11 @@ static int stm_probe(struct amba_device *adev, const struct amba_id *id)
> {
> int ret;
> void __iomem *base;
> - unsigned long *guaranteed;
> struct device *dev = &adev->dev;
> struct coresight_platform_data *pdata = NULL;
> struct stm_drvdata *drvdata;
> struct resource *res = &adev->res;
> struct resource ch_res;
> - size_t bitmap_size;
> struct coresight_desc desc = { 0 };
>
> desc.name = coresight_alloc_device_name(&stm_devs, dev);
> @@ -904,12 +902,10 @@ static int stm_probe(struct amba_device *adev, const struct amba_id *id)
> else
> drvdata->numsp = stm_num_stimulus_port(drvdata);
>
> - bitmap_size = BITS_TO_LONGS(drvdata->numsp) * sizeof(long);
> -
> - guaranteed = devm_kzalloc(dev, bitmap_size, GFP_KERNEL);
> - if (!guaranteed)
> + drvdata->chs.guaranteed = devm_bitmap_zalloc(dev, drvdata->numsp,
> + GFP_KERNEL);
> + if (!drvdata->chs.guaranteed)
> return -ENOMEM;
> - drvdata->chs.guaranteed = guaranteed;

I will pick up this patch when -rc1 gets released.

Thanks,
Mathieu

>
> spin_lock_init(&drvdata->spinlock);
>
> --
> 2.30.2
>