On 09/12/13 15:35, Jiri Olsa wrote: > On Mon, Dec 09, 2013 at 03:18:38PM +0200, Adrian Hunter wrote: >> 'SIZE_MAX / page_size' is an upper limit for >> the maximum number of mmap pages, not a lower >> limit. Change the condition accordingly. >> >> Signed-off-by: Adrian Hunter <adrian.hun...@intel.com> >> --- >> tools/perf/util/evlist.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c >> index 4d0945c..98ec96b 100644 >> --- a/tools/perf/util/evlist.c >> +++ b/tools/perf/util/evlist.c >> @@ -754,7 +754,7 @@ int perf_evlist__parse_mmap_pages(const struct option >> *opt, const char *str, >> unsigned long max = UINT_MAX; >> long pages; >> >> - if (max < SIZE_MAX / page_size) >> + if (max > SIZE_MAX / page_size) >> max = SIZE_MAX / page_size; > > I agree with the change.. but it looks like the check > is superfluos, maybe we want to define max as: > > unsigned long max = SIZE_MAX / page_size
I think it is OK because mmap_pages (in struct perf_record_opts) is an unsigned int i.e. max = MIN(UINT_MAX, SIZE_MAX / 4096) c.f. 32-bit 64-bit UINT_MAX 2^32 - 1 2^32 - 1 SIZE_MAX 2^32 - 1 2^64 - 1 SIZE_MAX / 4096 2^20 - 1 2^52 - 1 So on 32-bit the max is SIZE_MAX / 4096 but on 64-bit the max is UINT_MAX > > ? > > jirka >> >> pages = parse_pages_arg(str, 1, max); >> -- >> 1.7.11.7 >> > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/