[RFC PATCH 15/20] coresight: etm-perf: implementing 'setup_aux()' API
Alexander Shishkin
alexander.shishkin at linux.intel.com
Thu Oct 1 21:50:25 PDT 2015
Mathieu Poirier <mathieu.poirier at linaro.org> writes:
> On 30 September 2015 at 05:50, Alexander Shishkin
> <alexander.shishkin at linux.intel.com> wrote:
>> Mathieu Poirier <mathieu.poirier at linaro.org> writes:
>>
>>> +static void *etm_setup_aux(int cpu, void **pages,
>>> + int nr_pages, bool overwrite)
>>> +{
>>> + struct coresight_device *csdev;
>>> +
>>> + if (cpu == -1)
>>> + cpu = smp_processor_id();
>>> +
>>> + csdev = per_cpu(csdev_sink, cpu);
>>> + if (!csdev)
>>> + return NULL;
>>> +
>>> + return sink_ops(csdev)->setup_aux(csdev, cpu, pages,
>>> + nr_pages, overwrite);
>>
>> Is it guaranteed that this sink would always have .setup_aux()?
>
> A setup_aux() is vital to the design, both on Intel and ARM. I really
> don't see how one could go without it. I can return NULL if it hasn't
> been provided - that way the setup will fail without triggering a core
> dump.
It wasn't clear to me that the sink that ends up in csdev_sink will
always be the one that does have .setup_aux(). And if it indeed doesn't,
it's better to refuse to setup a buffer than crash.
Regards,
--
Alex
More information about the linux-arm-kernel
mailing list