Re: [PATCH 4/5] perf tools: Propagate error info from tp_format

From: RaphaÃl Beamonte
Date: Mon Sep 14 2015 - 18:06:05 EST


2015-09-14 17:36 GMT-04:00 Arnaldo Carvalho de Melo <arnaldo.melo@xxxxxxxxx>:
> Em Mon, Sep 14, 2015 at 04:59:41PM -0400, RaphaÃl Beamonte escreveu:
>> 2015-09-14 16:53 GMT-04:00 Arnaldo Carvalho de Melo <arnaldo.melo@xxxxxxxxx>:
>> > +++ b/tools/perf/util/evsel.c
>> > @@ -234,7 +234,9 @@ struct perf_evsel *perf_evsel__newtp_idx(const char *sys, const char *name, int
>> > struct perf_evsel *evsel = zalloc(perf_evsel__object.size);
>> > int err = -ENOMEM;
>> >
>> > - if (evsel != NULL) {
>> > + if (evsel == NULL) {
>> > + goto out_err;
>> > + } else {
>>
>> Is the else really necessary after a goto?
>
> Not really, we can remove it and all would be equivalent (the code
> with/without should be the same), its just that I wanted to avoid
> touching the identation to reduce patch size and since we need o open a
> brace to declare that attr variable...
>
> - Arnaldo

Ok. Though, given the content of that function, we could probably
declare attr in the first lines of the function and assign it its
value after the if. But I understand the patch size argument! :o)
On another subject, but on the same lines, shouldn't we use if
(!evsel) instead of if (evsel == NULL)? (kernel code style if I'm not
mistaken) Or is there something that prevents from using it here?

>> > struct perf_event_attr attr = {
>> > .type = PERF_TYPE_TRACEPOINT,
>> > .sample_type = (PERF_SAMPLE_RAW | PERF_SAMPLE_TIME |
>> > @@ -261,6 +263,7 @@ struct perf_evsel *perf_evsel__newtp_idx(const char *sys, const char *name, int
>> > out_free:
>> > zfree(&evsel->name);
>> > free(evsel);
>> > +out_err:
>> > return ERR_PTR(err);
>> > }
>> >
>> > diff --git a/tools/perf/util/trace-event.c b/tools/perf/util/trace-event.c
>> > index 8e3a60e3e15f..802bb868d446 100644
>> > --- a/tools/perf/util/trace-event.c
>> > +++ b/tools/perf/util/trace-event.c
>> > @@ -100,7 +100,7 @@ struct event_format*
>> > trace_event__tp_format(const char *sys, const char *name)
>> > {
>> > if (!tevent_initialized && trace_event__init2())
>> > - return NULL;
>> > + return ERR_PTR(-ENOMEM);
>> >
>> > return tp_format(sys, name);
>> > }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/