| From c14673d267d03a01c4df64c1895d6bebba4044bf Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 31 Aug 2024 00:04:11 -0700 |
| Subject: perf time-utils: Fix 32-bit nsec parsing |
| |
| From: Ian Rogers <irogers@google.com> |
| |
| [ Upstream commit 38e2648a81204c9fc5b4c87a8ffce93a6ed91b65 ] |
| |
| The "time utils" test fails in 32-bit builds: |
| ... |
| parse_nsec_time("18446744073.709551615") |
| Failed. ptime 4294967295709551615 expected 18446744073709551615 |
| ... |
| |
| Switch strtoul to strtoull as an unsigned long in 32-bit build isn't |
| 64-bits. |
| |
| Fixes: c284d669a20d408b ("perf tools: Move parse_nsec_time to time-utils.c") |
| Signed-off-by: Ian Rogers <irogers@google.com> |
| Cc: Adrian Hunter <adrian.hunter@intel.com> |
| Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> |
| Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com> |
| Cc: Chaitanya S Prakash <chaitanyas.prakash@arm.com> |
| Cc: Colin Ian King <colin.i.king@gmail.com> |
| Cc: David Ahern <dsa@cumulusnetworks.com> |
| Cc: Dominique Martinet <asmadeus@codewreck.org> |
| Cc: Ingo Molnar <mingo@redhat.com> |
| Cc: James Clark <james.clark@linaro.org> |
| Cc: Jiri Olsa <jolsa@kernel.org> |
| Cc: John Garry <john.g.garry@oracle.com> |
| Cc: Junhao He <hejunhao3@huawei.com> |
| Cc: Kan Liang <kan.liang@linux.intel.com> |
| Cc: Mark Rutland <mark.rutland@arm.com> |
| Cc: Masami Hiramatsu <mhiramat@kernel.org> |
| Cc: Namhyung Kim <namhyung@kernel.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Yang Jihong <yangjihong@bytedance.com> |
| Link: https://lore.kernel.org/r/20240831070415.506194-3-irogers@google.com |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| tools/perf/util/time-utils.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/tools/perf/util/time-utils.c b/tools/perf/util/time-utils.c |
| index 3024439216816..1b91ccd4d5234 100644 |
| --- a/tools/perf/util/time-utils.c |
| +++ b/tools/perf/util/time-utils.c |
| @@ -20,7 +20,7 @@ int parse_nsec_time(const char *str, u64 *ptime) |
| u64 time_sec, time_nsec; |
| char *end; |
| |
| - time_sec = strtoul(str, &end, 10); |
| + time_sec = strtoull(str, &end, 10); |
| if (*end != '.' && *end != '\0') |
| return -1; |
| |
| @@ -38,7 +38,7 @@ int parse_nsec_time(const char *str, u64 *ptime) |
| for (i = strlen(nsec_buf); i < 9; i++) |
| nsec_buf[i] = '0'; |
| |
| - time_nsec = strtoul(nsec_buf, &end, 10); |
| + time_nsec = strtoull(nsec_buf, &end, 10); |
| if (*end != '\0') |
| return -1; |
| } else |
| -- |
| 2.43.0 |
| |