From 6e471b060573fcacf891c90331ae383e32073559 Mon Sep 17 00:00:00 2001 From: Adrian Hunter Date: Fri, 15 Mar 2019 16:10:33 +0800 Subject: [PATCH] perf intel-pt: Fix divide by zero when TSC is not available mainline inclusion from mainline-5.0 commit 076333870c2f category: bugfix bugzilla: 12260 CVE: NA ------------------------------------------------- When TSC is not available, "timeless" decoding is used but a divide by zero occurs if perf_time_to_tsc() is called. Ensure the divisor is not zero. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: stable@vger.kernel.org # v4.9+ Link: https://lkml.kernel.org/n/tip-1i4j0wqoc8vlbkcizqqxpsf4@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Wei Li Reviewed-by: Cheng Jian Signed-off-by: Yang Yingliang --- tools/perf/util/intel-pt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c index 4f48bc11a29c..ff2c41ea94c8 100644 --- a/tools/perf/util/intel-pt.c +++ b/tools/perf/util/intel-pt.c @@ -2507,6 +2507,8 @@ int intel_pt_process_auxtrace_info(union perf_event *event, } pt->timeless_decoding = intel_pt_timeless_decoding(pt); + if (pt->timeless_decoding && !pt->tc.time_mult) + pt->tc.time_mult = 1; pt->have_tsc = intel_pt_have_tsc(pt); pt->sampling_mode = false; pt->est_tsc = !pt->timeless_decoding; -- GitLab