lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Thu, 6 Jun 2019 13:56:23 +0100
From:   Suzuki K Poulose <suzuki.poulose@....com>
To:     mike.leach@...aro.org
Cc:     linux-arm-kernel@...ts.infradead.org, coresight@...ts.linaro.org,
        linux-kernel@...r.kernel.org, mathieu.poirier@...aro.org
Subject: Re: [PATCH v4 17/30] coresight: Make device to CPU mapping generic



On 03/06/2019 11:07, Mike Leach wrote:
> Hi,
> 
> On Wed, 22 May 2019 at 11:37, Suzuki K Poulose <suzuki.poulose@....com> wrote:
>>
>> The CoreSight components ETM and CPU-Debug are always associated
>> with CPUs. Replace the of_coresight_get_cpu() with a platform
>> agnostic helper, in preparation to add ACPI support.
>>
>> Reviewed-by: Mathieu Poirier <mathieu.poirier@...aro.org>
>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@....com>
>> ---
>>   drivers/hwtracing/coresight/coresight-cpu-debug.c |  3 +--
>>   drivers/hwtracing/coresight/coresight-platform.c  | 18 +++++++++++++-----
>>   include/linux/coresight.h                         |  7 +------
>>   3 files changed, 15 insertions(+), 13 deletions(-)
>>
>> diff --git a/drivers/hwtracing/coresight/coresight-cpu-debug.c b/drivers/hwtracing/coresight/coresight-cpu-debug.c
>> index e8819d7..07a1367 100644
>> --- a/drivers/hwtracing/coresight/coresight-cpu-debug.c
>> +++ b/drivers/hwtracing/coresight/coresight-cpu-debug.c
>> @@ -572,14 +572,13 @@ static int debug_probe(struct amba_device *adev, const struct amba_id *id)
>>          struct device *dev = &adev->dev;
>>          struct debug_drvdata *drvdata;
>>          struct resource *res = &adev->res;
>> -       struct device_node *np = adev->dev.of_node;
>>          int ret;
>>
>>          drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
>>          if (!drvdata)
>>                  return -ENOMEM;
>>
>> -       drvdata->cpu = np ? of_coresight_get_cpu(np) : 0;
>> +       drvdata->cpu = coresight_get_cpu(dev);
>>          if (per_cpu(debug_drvdata, drvdata->cpu)) {
>>                  dev_err(dev, "CPU%d drvdata has already been initialized\n",
>>                          drvdata->cpu);
>> diff --git a/drivers/hwtracing/coresight/coresight-platform.c b/drivers/hwtracing/coresight/coresight-platform.c
>> index 5d78f4f..ba8c146 100644
>> --- a/drivers/hwtracing/coresight/coresight-platform.c
>> +++ b/drivers/hwtracing/coresight/coresight-platform.c
>> @@ -151,12 +151,14 @@ static void of_coresight_get_ports(const struct device_node *node,
>>          }
>>   }
>>
>> -int of_coresight_get_cpu(const struct device_node *node)
>> +static int of_coresight_get_cpu(struct device *dev)
>>   {
>>          int cpu;
>>          struct device_node *dn;
>>
>> -       dn = of_parse_phandle(node, "cpu", 0);
>> +       if (!dev->of_node)
>> +               return 0;
>> +       dn = of_parse_phandle(dev->of_node, "cpu", 0);
>>          /* Affinity defaults to CPU0 */
>>          if (!dn)
>>                  return 0;
>> @@ -166,7 +168,6 @@ int of_coresight_get_cpu(const struct device_node *node)
>>          /* Affinity to CPU0 if no cpu nodes are found */
>>          return (cpu < 0) ? 0 : cpu;
>>   }
>> -EXPORT_SYMBOL_GPL(of_coresight_get_cpu);
>>
>>   /*
>>    * of_coresight_parse_endpoint : Parse the given output endpoint @ep
>> @@ -240,8 +241,6 @@ static int of_get_coresight_platform_data(struct device *dev,
>>          bool legacy_binding = false;
>>          struct device_node *node = dev->of_node;
>>
>> -       pdata->cpu = of_coresight_get_cpu(node);
>> -
>>          /* Get the number of input and output port for this component */
>>          of_coresight_get_ports(node, &pdata->nr_inport, &pdata->nr_outport);
>>
>> @@ -300,6 +299,14 @@ of_get_coresight_platform_data(struct device *dev,
>>   }
>>   #endif
>>
>> +int coresight_get_cpu(struct device *dev)
>> +{
>> +       if (is_of_node(dev->fwnode))
>> +               return of_coresight_get_cpu(dev);
> 
> No of_coresight_get_cpu() will be defined if CONFIG_OF _not_ defined.
> This will hit an implicit declaration compile error in this case.

Thanks for catching it and you're right. I will fix this.

Cheers
Suzuki

Powered by blists - more mailing lists