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

From: YueHaibing
Date: Tue Mar 19 2019 - 11:12:26 EST



On 2019/3/19 22:55, Mathieu Poirier wrote:
> 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.


Sorry for late, then I can send a new patch to fix the two new bugs.

>
> 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
>>
>
> .
>