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>
Wed, 20 Nov 2019 17:00:37 +0000 (18:00 +0100)
[ Upstream commit 4f8ef21007531c3d7cb5b826e7b2c8999b65ecae ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hwtracing/coresight/coresight-etm-perf.c

index 99cbf5d5d1c1f3fee742acd83ef476b0b1414fe0..69349b93e8741e08398c6e9aa48b00b797da9465 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);