]> git.dujemihanovic.xyz Git - linux.git/commitdiff
kcsan: use u64 instead of cycles_t
authorHeiko Carstens <hca@linux.ibm.com>
Thu, 29 Jul 2021 14:28:11 +0000 (16:28 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Fri, 30 Jul 2021 15:09:02 +0000 (17:09 +0200)
cycles_t has a different type across architectures: unsigned int,
unsinged long, or unsigned long long. Depending on architecture this
will generate this warning:

kernel/kcsan/debugfs.c: In function ‘microbenchmark’:
./include/linux/kern_levels.h:5:25: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘cycles_t’ {aka ‘long unsigned int’} [-Wformat=]

To avoid this simply change the type of cycle to u64 in microbenchmark(),
since u64 is of type unsigned long long for all architectures.

Acked-by: Marco Elver <elver@google.com>
Link: https://lore.kernel.org/r/20210729142811.1309391-1-hca@linux.ibm.com
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
kernel/kcsan/debugfs.c

index e65de172ccf7cf81734db28d193e0ab4154bfb58..1d1d1b0e424897d1c9ba750d046f7e535b3b724d 100644 (file)
@@ -64,7 +64,7 @@ static noinline void microbenchmark(unsigned long iters)
 {
        const struct kcsan_ctx ctx_save = current->kcsan_ctx;
        const bool was_enabled = READ_ONCE(kcsan_enabled);
-       cycles_t cycles;
+       u64 cycles;
 
        /* We may have been called from an atomic region; reset context. */
        memset(&current->kcsan_ctx, 0, sizeof(current->kcsan_ctx));