sst-linux/kernel/trace
Nikolay Kuratov 9927752278 ftrace: Avoid potential division by zero in function_stat_show()
commit a1a7eb89ca0b89dc1c326eeee2596f263291aca3 upstream.

Check whether denominator expression x * (x - 1) * 1000 mod {2^32, 2^64}
produce zero and skip stddev computation in that case.

For now don't care about rec->counter * rec->counter overflow because
rec->time * rec->time overflow will likely happen earlier.

Cc: stable@vger.kernel.org
Cc: Wen Yang <wenyang@linux.alibaba.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/20250206090156.1561783-1-kniv@yandex-team.ru
Fixes: e31f7939c1 ("ftrace: Avoid potential division by zero in function profiler")
Signed-off-by: Nikolay Kuratov <kniv@yandex-team.ru>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-03-07 16:56:47 +01:00
..
rv
blktrace.c
bpf_trace.c bpf: Send signals asynchronously if !preemptible 2025-02-21 13:49:08 +01:00
bpf_trace.h
error_report-traces.c
fgraph.c
fprobe.c
ftrace_internal.h
ftrace.c ftrace: Avoid potential division by zero in function_stat_show() 2025-03-07 16:56:47 +01:00
Kconfig
kprobe_event_gen_test.c
Makefile
pid_list.c trace/pid_list: Change gfp flags in pid_list_fill_irq() 2024-08-03 08:49:34 +02:00
pid_list.h
power-traces.c
preemptirq_delay_test.c
rethook.c
ring_buffer_benchmark.c
ring_buffer.c
rpm-traces.c
synth_event_gen_test.c
trace_benchmark.c
trace_benchmark.h
trace_boot.c
trace_branch.c
trace_clock.c tracing: Use atomic64_inc_return() in trace_clock_counter() 2024-12-14 19:54:45 +01:00
trace_dynevent.c
trace_dynevent.h
trace_entries.h
trace_eprobe.c tracing/eprobe: Fix to release eprobe when failed to add dyn_event 2024-12-14 19:54:50 +01:00
trace_event_perf.c trace/trace_event_perf: remove duplicate samples on the first tracepoint event 2024-12-14 19:53:35 +01:00
trace_events_filter_test.h
trace_events_filter.c
trace_events_hist.c tracing: Fix bad hist from corrupting named_triggers list 2025-03-07 16:56:47 +01:00
trace_events_inject.c
trace_events_synth.c
trace_events_trigger.c
trace_events_user.c
trace_events.c tracing: Have process_string() also allow arrays 2025-01-09 13:29:56 +01:00
trace_export.c
trace_functions_graph.c
trace_functions.c ftrace: Correct preemption accounting for function tracing. 2025-03-07 16:56:40 +01:00
trace_hwlat.c tracing/hwlat: Fix a race during cpuhp processing 2024-10-17 15:22:02 +02:00
trace_irqsoff.c
trace_kdb.c
trace_kprobe_selftest.c
trace_kprobe_selftest.h
trace_kprobe.c tracing/kprobe: Make trace_kprobe's module callback called after jump_label update 2025-01-02 10:30:51 +01:00
trace_mmiotrace.c
trace_nop.c
trace_osnoise.c tracing/timerlat: Fix a race during cpuhp processing 2024-10-17 15:22:02 +02:00
trace_output.c tracing: Remove precision vsnprintf() check from print event 2024-10-17 15:22:10 +02:00
trace_output.h
trace_preemptirq.c
trace_printk.c
trace_probe_kernel.h
trace_probe_tmpl.h
trace_probe.c tracing: Consider the NULL character when validating the event length 2024-11-01 01:56:03 +01:00
trace_probe.h
trace_recursion_record.c
trace_sched_switch.c
trace_sched_wakeup.c
trace_selftest_dynamic.c
trace_selftest.c
trace_seq.c
trace_stack.c
trace_stat.c
trace_stat.h
trace_synth.h
trace_syscalls.c tracing/ftrace: disable preemption in syscall probe 2024-12-14 19:54:45 +01:00
trace_uprobe.c uprobe: avoid out-of-bounds memory access of fetching args 2024-11-17 15:07:21 +01:00
trace.c tracing: Prevent bad count for tracing_cpumask_write 2025-01-02 10:30:54 +01:00
trace.h
tracing_map.c tracing: Fix cmp_entries_dup() to respect sort() comparison rules 2024-12-14 19:54:32 +01:00
tracing_map.h