samples/ftrace: Prevent division by zero when nr_function_calls is zero

The ftrace-ops sample exposes nr_function_calls as a module parameter
and uses it as the divisor when printing the measured time per call.
Loading the module with nr_function_calls=0 skips the benchmark loop and
then divides the elapsed time by zero, crashing the kernel during sample
module initialization.

Keep accepting the parameter value, but report -1LL as the per-call
duration when the call count is zero instead of dividing by it.

Link: https://patch.msgid.link/20260629152616.107080.e19bfbed249c.ftrace-ops-zero-function-calls-div0@trailofbits.com
Assisted-by: Codex:gpt-5.5-cyber-preview
Signed-off-by: Samuel Moelius <sam.moelius@trailofbits.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
Samuel Moelius
2026-07-28 07:18:50 -04:00
committed by Steven Rostedt
parent 693dc27c52
commit ac00ffdbbc
+1 -1
View File
@@ -223,7 +223,7 @@ static int __init ftrace_ops_sample_init(void)
pr_info("Attempted %u calls to %ps in %lluns (%lluns / call)\n",
nr_function_calls, tracee_relevant,
period, div_u64(period, nr_function_calls));
period, nr_function_calls ? div_u64(period, nr_function_calls) : -1LL);
if (persist)
return 0;