Re: [PATCH V2 2/5] coresight: etm4x: Drop iomem 'base' argument from etm4_probe()

From: Anshuman Khandual
Date: Tue May 16 2023 - 07:14:06 EST




On 4/4/23 20:52, James Clark wrote:
>
> On 27/03/2023 06:05, Anshuman Khandual wrote:
>> 'struct etm4_drvdata' itself can carry the base address before etm4_probe()
>> gets called. Just drop that redundant argument from etm4_probe().
>>
>> Cc: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
>> Cc: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
>> Cc: Mike Leach <mike.leach@xxxxxxxxxx>
>> Cc: Leo Yan <leo.yan@xxxxxxxxxx>
>> Cc: coresight@xxxxxxxxxxxxxxxx
>> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
>> Cc: linux-kernel@xxxxxxxxxxxxxxx
>> Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>
>> ---
>> drivers/hwtracing/coresight/coresight-etm4x-core.c | 10 +++++-----
>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
>> index 10119c223fbe..5d77571a8df9 100644
>> --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
>> +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
>> @@ -2048,7 +2048,7 @@ static int etm4_add_coresight_dev(struct etm4_init_arg *init_arg)
>> return 0;
>> }
>>
>> -static int etm4_probe(struct device *dev, void __iomem *base, u32 etm_pid)
>> +static int etm4_probe(struct device *dev, u32 etm_pid)
>> {
>> struct etmv4_drvdata *drvdata = dev_get_drvdata(dev);
>> struct csdev_access access = { 0 };
>> @@ -2069,8 +2069,6 @@ static int etm4_probe(struct device *dev, void __iomem *base, u32 etm_pid)
>> return -ENOMEM;
>> }
>>
>> - drvdata->base = base;
>> -
>> spin_lock_init(&drvdata->spinlock);
>>
>> drvdata->cpu = coresight_get_cpu(dev);
>> @@ -2124,8 +2122,9 @@ static int etm4_probe_amba(struct amba_device *adev, const struct amba_id *id)
>> if (!drvdata)
>> return -ENOMEM;
>>
>> + drvdata->base = base;
>> dev_set_drvdata(dev, drvdata);
>> - ret = etm4_probe(dev, base, id->id);
>> + ret = etm4_probe(dev, id->id);
>> if (!ret)
>> pm_runtime_put(&adev->dev);
>>
>> @@ -2141,6 +2140,7 @@ static int etm4_probe_platform_dev(struct platform_device *pdev)
>> if (!drvdata)
>> return -ENOMEM;
>>
>> + drvdata->base = NULL;
> Very minor point, drvdata is zero alloced so it doesn't make sense to
> zero this field but not the others. It's harmless, but it might imply
> something and confuse someone.

Just to keep changes to both call sites of etm4_probe() similar i.e
etm4_probe()'s 'base' argument being pre-assigned as drvdata->base,
let's keep the NULL assignment above unchanged.

>
> Either way:
> Reviewed-by: James Clark <james.clark@xxxxxxx>
>