Mathieu Poirier <mathieu.poirier@xxxxxxxxxx> writes: > On 30 September 2015 at 05:50, Alexander Shishkin > <alexander.shishkin@xxxxxxxxxxxxxxx> wrote: >> Mathieu Poirier <mathieu.poirier@xxxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html