coresight: perf: Disable trace path upon source error
authorSuzuki K Poulose <suzuki.poulose@arm.com>
Thu, 20 Sep 2018 19:17:50 +0000 (13:17 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Sep 2018 18:09:17 +0000 (20:09 +0200)
We enable the trace path, before activating the source.
If we fail to enable the source, we must disable the path
to make sure it is available for another session.

Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hwtracing/coresight/coresight-etm-perf.c

index afe7e7fc1a930593d7ca1973a85517ea57e4e385..6db76ce6ba5f155f6147b30df0da5b37c82f60cc 100644 (file)
@@ -317,11 +317,13 @@ static void etm_event_start(struct perf_event *event, int flags)
 
        /* Finally enable the tracer */
        if (source_ops(csdev)->enable(csdev, event, CS_MODE_PERF))
-               goto fail_end_stop;
+               goto fail_disable_path;
 
 out:
        return;
 
+fail_disable_path:
+       coresight_disable_path(path);
 fail_end_stop:
        perf_aux_output_flag(handle, PERF_AUX_FLAG_TRUNCATED);
        perf_aux_output_end(handle, 0);