| Date | Mon, 20 Apr 2015 20:06:45 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 03/44] perf tools: Add user events for AUX area tracing |
| |
Em Thu, Apr 09, 2015 at 06:53:43PM +0300, Adrian Hunter escreveu: > +static int skipn(int fd, off_t n) > +{ > + char buf[4096]; > + ssize_t ret; > + > + while (n > 0) { > + ret = read(fd, buf, MIN(n, sizeof(buf))); > + if (ret <= 0) > + return ret; > + n -= ret; > + } > + > + return 0;
We have min() in tools/perf/util/include/linux/kernel.h, and that is what is being used elsewhere in tools/perf/:
[acme@zoo linux]$ find tools/perf/ -name "*.[ch]" | xargs grep '\<min(' | wc -l 20 [acme@zoo linux]$ find tools/perf/ -name "*.[ch]" | xargs grep '\<max(' | wc -l 8 [acme@zoo linux]$
I noticed it tho because of this:
util/session.c: In function ‘skipn’: util/session.c:279:28: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] ret = read(fd, buf, MIN(n, sizeof(buf))); ^ util/session.c:279:47: error: signed and unsigned type in conditional expression [-Werror=sign-compare] ret = read(fd, buf, MIN(n, sizeof(buf))); ^ cc1: all warnings being treated as errors make[3]: *** [/tmp/build/perf/util/session.o] Error 1 make[3]: *** Waiting for unfinished jobs....
Fixing it to be:
ret = read(fd, buf, min(n, (off_t)sizeof(buf)));
Ok?
- Arnaldo
|