Re: [PATCH v2 01/17] coresight: trbe: Fix incorrect access of the sink specific data

From: Mathieu Poirier
Date: Thu Sep 30 2021 - 13:57:58 EST


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@xxxxxxx>
> ---
> 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
>