Re: [PATCH] perf tools: return errcode in cs_etm__process_auxtrace_info

From: Mathieu Poirier
Date: Tue Mar 19 2019 - 10:55:36 EST


On Tue, Mar 19, 2019 at 11:46:31AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Tue, Mar 19, 2019 at 08:38:32AM -0600, Mathieu Poirier escreveu:
> > On Mon, 18 Mar 2019 at 11:15, Arnaldo Carvalho de Melo
> > <arnaldo.melo@xxxxxxxxx> wrote:
> > >
> > > Em Fri, Mar 15, 2019 at 10:26:49AM +0800, Yue Haibing escreveu:
> > > > From: YueHaibing <yuehaibing@xxxxxxxxxx>
> > > >
> > > > 'err' is set in err path, but it's not returned to callers.
> > > > Also fix a pass zero to PTR_ERR issue.
> > >
> > > Next time please submit two patches, one for the PTR_ERR and another for
> > > not throwing away the err = -E!INVAL and returning just -EINVAL, I'm
> > > doing it this time.
> > >
> >
> > Please hold off on that - I've asked for other modifications to be
> > done on this patch.
>
> Do you really think that it is necessary to hold? The fixes are trivial
> and I already have them split and applied, see them below, I think
> whatever other changes can be done in further patches, no?

Proceeding with the patches below would created two new bugs, hence asking Yue
for modifications.

Mathieu

>
> - Arnaldo
>
> From 6c5c248935a4da12a582b1518a38ec35044833ee Mon Sep 17 00:00:00 2001
> From: YueHaibing <yuehaibing@xxxxxxxxxx>
> Date: Fri, 15 Mar 2019 10:26:49 +0800
> Subject: [PATCH 24/42] perf cs-etm: return errcode in
> cs_etm__process_auxtrace_info()
>
> 'err' is set in err path, but it's not returned to callers. Don't always return
> -EINVAL, return err.
>
> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>
> Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Suzuki K Poulouse <suzuki.poulose@xxxxxxx>
> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata")
> Link: http://lkml.kernel.org/r/20190315022649.17848-1-yuehaibing@xxxxxxxxxx
> [ split from a larger patch ]
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> ---
> tools/perf/util/cs-etm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c
> index 110804936fc3..2257ac4dbff2 100644
> --- a/tools/perf/util/cs-etm.c
> +++ b/tools/perf/util/cs-etm.c
> @@ -2023,5 +2023,5 @@ int cs_etm__process_auxtrace_info(union perf_event *event,
> err_free_hdr:
> zfree(&hdr);
>
> - return -EINVAL;
> + return err;
> }
> --
> 2.20.1
>
> From 4ab1e71e45a91220bdca7fc3b79c600df81d9234 Mon Sep 17 00:00:00 2001
> From: YueHaibing <yuehaibing@xxxxxxxxxx>
> Date: Fri, 15 Mar 2019 10:26:49 +0800
> Subject: [PATCH 25/42] perf cs-etm: Remove errnoeous ERR_PTR() usage in in
> cs_etm__process_auxtrace_info
>
> intlist__findnew() doesn't uses ERR_PTR() as a return mechanism so its callers
> shouldn't try to extract the error using PTR_ERR(ret-from-intlist__findnew()),
> make cs_etm__process_auxtrace_info9) return -ENOMEM instead.
>
> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>
> Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Suzuki K Poulouse <suzuki.poulose@xxxxxxx>
> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata")
> Link: http://lkml.kernel.org/r/20190315022649.17848-1-yuehaibing@xxxxxxxxxx
> [ split from a larger patch ]
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> ---
> tools/perf/util/cs-etm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c
> index 2257ac4dbff2..111f33cd1204 100644
> --- a/tools/perf/util/cs-etm.c
> +++ b/tools/perf/util/cs-etm.c
> @@ -1908,7 +1908,7 @@ int cs_etm__process_auxtrace_info(union perf_event *event,
>
> /* Something went wrong, no need to continue */
> if (!inode) {
> - err = PTR_ERR(inode);
> + err = -ENOMEM;
> goto err_free_metadata;
> }
>
> --
> 2.20.1
>