coresight: tmc-etr: Relax collection of trace from sysfs mode
authorSuzuki K Poulose <suzuki.poulose@arm.com>
Thu, 20 Sep 2018 19:17:52 +0000 (13:17 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Sep 2018 18:09:17 +0000 (20:09 +0200)
Since the ETR now uses mode specific buffers, we can reliably
provide the trace data captured in sysfs mode, even when the ETR
is operating in PERF mode.

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-tmc-etr.c

index 2d6f428176ff86aa9438d8fde335bb509b1290a3..bafd73e71c4c793ca6a5360d361b278a93e718a8 100644 (file)
@@ -1168,19 +1168,17 @@ int tmc_read_prepare_etr(struct tmc_drvdata *drvdata)
                goto out;
        }
 
-       /* Don't interfere if operated from Perf */
-       if (drvdata->mode == CS_MODE_PERF) {
-               ret = -EINVAL;
-               goto out;
-       }
-
-       /* If sysfs_buf is NULL the trace data has been read already */
+       /*
+        * We can safely allow reads even if the ETR is operating in PERF mode,
+        * since the sysfs session is captured in mode specific data.
+        * If drvdata::sysfs_data is NULL the trace data has been read already.
+        */
        if (!drvdata->sysfs_buf) {
                ret = -EINVAL;
                goto out;
        }
 
-       /* Disable the TMC if we are trying to read from a running session */
+       /* Disable the TMC if we are trying to read from a running session. */
        if (drvdata->mode == CS_MODE_SYSFS)
                tmc_etr_disable_hw(drvdata);