tracing: Use div64_u64() instead of do_div()
authorThorsten Blum <thorsten.blum@toblux.com>
Sun, 25 Feb 2024 16:45:08 +0000 (17:45 +0100)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Mon, 18 Mar 2024 14:33:06 +0000 (10:33 -0400)
Fixes Coccinelle/coccicheck warnings reported by do_div.cocci.

Compared to do_div(), div64_u64() does not implicitly cast the divisor and
does not unnecessarily calculate the remainder.

Link: https://lore.kernel.org/linux-trace-kernel/20240225164507.232942-2-thorsten.blum@toblux.com
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Thorsten Blum <thorsten.blum@toblux.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/trace_benchmark.c

index 54d5fa35c90abf77d2dc268bfaa37c54a8fd90dd..811b08439406a04cb96fe2f5b51a01d0233ee1a4 100644 (file)
@@ -92,7 +92,6 @@ static void trace_do_benchmark(void)
        bm_total += delta;
        bm_totalsq += delta * delta;
 
-
        if (bm_cnt > 1) {
                /*
                 * Apply Welford's method to calculate standard deviation:
@@ -105,7 +104,7 @@ static void trace_do_benchmark(void)
                stddev = 0;
 
        delta = bm_total;
-       do_div(delta, bm_cnt);
+       delta = div64_u64(delta, bm_cnt);
        avg = delta;
 
        if (stddev > 0) {
@@ -127,7 +126,7 @@ static void trace_do_benchmark(void)
                        seed = stddev;
                        if (!last_seed)
                                break;
-                       do_div(seed, last_seed);
+                       seed = div64_u64(seed, last_seed);
                        seed += last_seed;
                        do_div(seed, 2);
                } while (i++ < 10 && last_seed != seed);