static int etm4_enable_perf(struct coresight_device *csdev, struct perf_event_attr *attr) { struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); if (WARN_ON_ONCE(drvdata->cpu != smp_processor_id())) return -EINVAL; /* Configure the tracer based on the session's specifics */ etm4_parse_event_config(drvdata, attr); /* And enable it */ etm4_enable_hw(drvdata); return 0; }
static int etm4_enable_perf(struct coresight_device *csdev, struct perf_event *event) { int ret = 0; struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); if (WARN_ON_ONCE(drvdata->cpu != smp_processor_id())) { ret = -EINVAL; goto out; } /* Configure the tracer based on the session's specifics */ ret = etm4_parse_event_config(drvdata, event); if (ret) goto out; /* And enable it */ etm4_enable_hw(drvdata); out: return ret; }