aboutsummaryrefslogtreecommitdiff
path: root/drivers/hwtracing/coresight/coresight-tmc-etr.c
diff options
context:
space:
mode:
authorMathieu Poirier <mathieu.poirier@linaro.org>2019-04-18 13:57:42 -0600
committerMathieu Poirier <mathieu.poirier@linaro.org>2019-05-03 09:35:28 -0600
commit4de1e6dee83da8fe67e6b7fa5cfcf1d77f8e7349 (patch)
treeaeb12557c9bd6017bcb5711ef980e18e8b20e03d /drivers/hwtracing/coresight/coresight-tmc-etr.c
parent78e6427b4e7b017951785982f7f97cf64e2d624b (diff)
coresight: Fix buffer size in snapshot mode
In snapshot mode the buffer used by the sink devices need to be equal to the ring buffer size in order for the user space mechanic to work properly. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Diffstat (limited to 'drivers/hwtracing/coresight/coresight-tmc-etr.c')
-rw-r--r--drivers/hwtracing/coresight/coresight-tmc-etr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c
index df6e4b0b84e9..b9881d6d41ba 100644
--- a/drivers/hwtracing/coresight/coresight-tmc-etr.c
+++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c
@@ -1188,9 +1188,13 @@ alloc_etr_buf(struct tmc_drvdata *drvdata, struct perf_event *event,
/*
* Try to match the perf ring buffer size if it is larger
- * than the size requested via sysfs.
+ * than the size requested via sysfs. In snapsot mode the size
+ * of the perf ring buffer needs to be equal to the allocated
+ * size if we want to reuse the generic AUX buffer management
+ * mechanic.
*/
- if ((nr_pages << PAGE_SHIFT) > drvdata->size) {
+ if (snapshot ||
+ (nr_pages << PAGE_SHIFT) > drvdata->size) {
etr_buf = tmc_alloc_etr_buf(drvdata, (nr_pages << PAGE_SHIFT),
0, node, NULL);
if (!IS_ERR(etr_buf))