Message ID | 20210921134121.2423546-2-suzuki.poulose@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: Self-hosted trace related errata workarounds | expand |
On 9/21/21 7:11 PM, Suzuki K Poulose wrote: > The TRBE driver wrongly treats the aux private data as the TRBE driver > specific buffer for a given perf handle, while it is the ETM PMU's > event specific data. Fix this by correcting the instance to use > appropriate helper. > > Fixes: 3fbf7f011f242 ("coresight: sink: Add TRBE driver") > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com> > --- > drivers/hwtracing/coresight/coresight-trbe.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c > index d4c57aed05e5..e3d73751d568 100644 > --- a/drivers/hwtracing/coresight/coresight-trbe.c > +++ b/drivers/hwtracing/coresight/coresight-trbe.c > @@ -363,7 +363,7 @@ static unsigned long __trbe_normal_offset(struct perf_output_handle *handle) > > static unsigned long trbe_normal_offset(struct perf_output_handle *handle) > { > - struct trbe_buf *buf = perf_get_aux(handle); > + struct trbe_buf *buf = etm_perf_sink_config(handle); > u64 limit = __trbe_normal_offset(handle); > u64 head = PERF_IDX2OFF(handle->head, buf); > >
On Tue, Sep 21, 2021 at 02:41:05PM +0100, Suzuki K Poulose wrote: > The TRBE driver wrongly treats the aux private data as the TRBE driver > specific buffer for a given perf handle, while it is the ETM PMU's > event specific data. Fix this by correcting the instance to use > appropriate helper. > > Fixes: 3fbf7f011f242 ("coresight: sink: Add TRBE driver") > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> > --- > drivers/hwtracing/coresight/coresight-trbe.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c > index d4c57aed05e5..e3d73751d568 100644 > --- a/drivers/hwtracing/coresight/coresight-trbe.c > +++ b/drivers/hwtracing/coresight/coresight-trbe.c > @@ -363,7 +363,7 @@ static unsigned long __trbe_normal_offset(struct perf_output_handle *handle) > > static unsigned long trbe_normal_offset(struct perf_output_handle *handle) > { > - struct trbe_buf *buf = perf_get_aux(handle); > + struct trbe_buf *buf = etm_perf_sink_config(handle); I really wonder how things got to work before... I have fixed the 13-character SHA in the "Fixes" tag and added this patch to my local tree. More comments tomorrow. Thanks, Mathieu > u64 limit = __trbe_normal_offset(handle); > u64 head = PERF_IDX2OFF(handle->head, buf); > > -- > 2.24.1 >
diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c index d4c57aed05e5..e3d73751d568 100644 --- a/drivers/hwtracing/coresight/coresight-trbe.c +++ b/drivers/hwtracing/coresight/coresight-trbe.c @@ -363,7 +363,7 @@ static unsigned long __trbe_normal_offset(struct perf_output_handle *handle) static unsigned long trbe_normal_offset(struct perf_output_handle *handle) { - struct trbe_buf *buf = perf_get_aux(handle); + struct trbe_buf *buf = etm_perf_sink_config(handle); u64 limit = __trbe_normal_offset(handle); u64 head = PERF_IDX2OFF(handle->head, buf);
The TRBE driver wrongly treats the aux private data as the TRBE driver specific buffer for a given perf handle, while it is the ETM PMU's event specific data. Fix this by correcting the instance to use appropriate helper. Fixes: 3fbf7f011f242 ("coresight: sink: Add TRBE driver") Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> --- drivers/hwtracing/coresight/coresight-trbe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)