Re: [PATCH] perf: Fix errors reported by checkpatch.pl scripts

From: Arnaldo Carvalho de Melo
Date: Wed Jul 27 2016 - 10:47:39 EST


Em Wed, Jul 27, 2016 at 11:45:18AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, Jul 27, 2016 at 10:33:42PM +0800, Rui Teng escreveu:
> > Clear all the errors and also some warnings reported by checkpatch.pl scripts
> > for file tools/perf/util/header.c
> > And replace __attribute__((weak)) to __weak definition from <linux/compiler.h>
>
> When you have "And do this other thing"... please break it into multiple
> patches, one for each issue.
>
> And it seems there is a real bug fixed, namely...
>
> > Signed-off-by: Rui Teng <rui.teng@xxxxxxxxxxxxxxxxxx>
> > ---
> > tools/perf/util/header.c | 44 ++++++++++++++++++++++++++------------------
> > 1 file changed, 26 insertions(+), 18 deletions(-)
> >
> > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> > index 8f0db40..862525d 100644
> > --- a/tools/perf/util/header.c
> > +++ b/tools/perf/util/header.c
> > @@ -256,7 +256,8 @@ static int __write_cpudesc(int fd, const char *cpuinfo_proc)
> > while (*q && isspace(*q))
> > q++;
> > if (q != (p+1))
> > - while ((*r++ = *q++));
> > + while ((*r++ = *q++))
> > + ;
> > }
> > p++;
> > }
> > @@ -278,6 +279,7 @@ static int write_cpudesc(int fd, struct perf_header *h __maybe_unused,
> >
> > for (i = 0; i < ARRAY_SIZE(cpuinfo_procs); i++) {
> > int ret;
> > +
> > ret = __write_cpudesc(fd, cpuinfo_procs[i]);
> > if (ret >= 0)
> > return ret;
> > @@ -479,7 +481,7 @@ try_threads:
> > }
> > ret = 0;
> > done:
> > - if(fp)
> > + if (fp)
> > fclose(fp);
> > free(buf);
> > return ret;
> > @@ -828,7 +830,7 @@ static int write_group_desc(int fd, struct perf_header *h __maybe_unused,
> > * default get_cpuid(): nothing gets recorded
> > * actual implementation must be in arch/$(ARCH)/util/header.c
> > */
> > -int __attribute__ ((weak)) get_cpuid(char *buffer __maybe_unused,
> > +int __weak get_cpuid(char *buffer __maybe_unused,
> > size_t sz __maybe_unused)
> > {
> > return -1;
> > @@ -1036,24 +1038,28 @@ static int write_cache(int fd, struct perf_header *h __maybe_unused,
> > struct cpu_cache_level *c = &caches[i];
> >
> > #define _W(v) \
> > + do { \
> > ret = do_write(fd, &c->v, sizeof(u32)); \
> > if (ret < 0) \
> > - goto out;
>
> ... this one, no? I.e. there is a missing \ that makes the '} while (0)
> to be out of the macro definition?

Nah, the 'do {' is being added part is being added by you following the
checkpatch recommendation to wrap a multi-line macro with a do {} while(0)
block, nevermind.


> > + goto out; \
> > + } while (0)
> >
> > - _W(level)
> > - _W(line_size)
> > - _W(sets)
> > - _W(ways)
> > + _W(level);
> > + _W(line_size);
> > + _W(sets);
> > + _W(ways);
> > #undef _W
> >
> > #define _W(v) \
> > + do { \
> > ret = do_write_string(fd, (const char *) c->v); \
> > if (ret < 0) \
> > - goto out;
> > + goto out; \
> > + } while (0)
> >
> > - _W(type)
> > - _W(size)
> > - _W(map)
> > + _W(type);
> > + _W(size);
> > + _W(map);
> > #undef _W
> > }
> >
> > @@ -1570,6 +1576,7 @@ static int process_tracing_data(struct perf_file_section *section __maybe_unused
> > int fd, void *data)
> > {
> > ssize_t ret = trace_report(fd, data, false);
> > +
> > return ret < 0 ? -1 : 0;
> > }
> >
> > @@ -2251,6 +2258,7 @@ int perf_header__fprintf_info(struct perf_session *session, FILE *fp, bool full)
> > struct header_print_data hd;
> > struct perf_header *header = &session->header;
> > int fd = perf_data_file__fd(session->file);
> > +
> > hd.fp = fp;
> > hd.full = full;
> >
> > @@ -2759,8 +2767,8 @@ static int read_attr(int fd, struct perf_header *ph,
> > left = sz - PERF_ATTR_SIZE_VER0;
> > if (left) {
> > void *ptr = attr;
> > - ptr += PERF_ATTR_SIZE_VER0;
> >
> > + ptr += PERF_ATTR_SIZE_VER0;
> > ret = readn(fd, ptr, left);
> > }
> > /* read perf_file_section, ids are read in caller */
> > @@ -3002,7 +3010,7 @@ perf_event__synthesize_event_update_scale(struct perf_tool *tool,
> >
> > ev_data = (struct event_update_event_scale *) ev->data;
> > ev_data->scale = evsel->scale;
> > - err = process(tool, (union perf_event*) ev, NULL, NULL);
> > + err = process(tool, (union perf_event *) ev, NULL, NULL);
> > free(ev);
> > return err;
> > }
> > @@ -3021,7 +3029,7 @@ perf_event__synthesize_event_update_name(struct perf_tool *tool,
> > return -ENOMEM;
> >
> > strncpy(ev->data, evsel->name, len);
> > - err = process(tool, (union perf_event*) ev, NULL, NULL);
> > + err = process(tool, (union perf_event *) ev, NULL, NULL);
> > free(ev);
> > return err;
> > }
> > @@ -3052,7 +3060,7 @@ perf_event__synthesize_event_update_cpus(struct perf_tool *tool,
> > evsel->own_cpus,
> > type, max);
> >
> > - err = process(tool, (union perf_event*) ev, NULL, NULL);
> > + err = process(tool, (union perf_event *) ev, NULL, NULL);
> > free(ev);
> > return err;
> > }
> > @@ -3146,9 +3154,8 @@ int perf_event__process_attr(struct perf_tool *tool __maybe_unused,
> > if (perf_evsel__alloc_id(evsel, 1, n_ids))
> > return -ENOMEM;
> >
> > - for (i = 0; i < n_ids; i++) {
> > + for (i = 0; i < n_ids; i++)
> > perf_evlist__id_add(evlist, evsel, 0, i, event->attr.id[i]);
> > - }
> >
> > symbol_conf.nr_events = evlist->nr_entries;
> >
> > @@ -3269,6 +3276,7 @@ int perf_event__process_tracing_data(struct perf_tool *tool __maybe_unused,
> > }
> > if (session->repipe) {
> > int retw = write(STDOUT_FILENO, buf, padding);
> > +
> > if (retw <= 0 || retw != padding) {
> > pr_err("%s: repiping tracing data padding", __func__);
> > return -1;
> > --
> > 2.7.4