2021-04-21 18:46:15

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] kcsan: fix printk format string

From: Arnd Bergmann <[email protected]>

Printing a 'long' variable using the '%d' format string is wrong
and causes a warning from gcc:

kernel/kcsan/kcsan_test.c: In function 'nthreads_gen_params':
include/linux/kern_levels.h:5:25: error: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Werror=format=]

Use the appropriate format modifier.

Fixes: f6a149140321 ("kcsan: Switch to KUNIT_CASE_PARAM for parameterized tests")
Signed-off-by: Arnd Bergmann <[email protected]>
---
kernel/kcsan/kcsan_test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/kcsan/kcsan_test.c b/kernel/kcsan/kcsan_test.c
index 9247009295b5..a29e9b1a30c8 100644
--- a/kernel/kcsan/kcsan_test.c
+++ b/kernel/kcsan/kcsan_test.c
@@ -981,7 +981,7 @@ static const void *nthreads_gen_params(const void *prev, char *desc)
const long min_required_cpus = 2 + min_unused_cpus;

if (num_online_cpus() < min_required_cpus) {
- pr_err_once("Too few online CPUs (%u < %d) for test\n",
+ pr_err_once("Too few online CPUs (%u < %ld) for test\n",
num_online_cpus(), min_required_cpus);
nthreads = 0;
} else if (nthreads >= num_online_cpus() - min_unused_cpus) {
--
2.29.2


2021-04-21 18:51:04

by Marco Elver

[permalink] [raw]
Subject: Re: [PATCH] kcsan: fix printk format string

On Wed, 21 Apr 2021 at 15:51, Arnd Bergmann <[email protected]> wrote:
> From: Arnd Bergmann <[email protected]>
>
> Printing a 'long' variable using the '%d' format string is wrong
> and causes a warning from gcc:
>
> kernel/kcsan/kcsan_test.c: In function 'nthreads_gen_params':
> include/linux/kern_levels.h:5:25: error: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Werror=format=]
>
> Use the appropriate format modifier.
>
> Fixes: f6a149140321 ("kcsan: Switch to KUNIT_CASE_PARAM for parameterized tests")
> Signed-off-by: Arnd Bergmann <[email protected]>

Reviewed-by: Marco Elver <[email protected]>

Thank you!

Normally KCSAN patches go through -rcu, but perhaps in this instance
it should be picked up into -tip/locking/core directly, so it goes out
with "kcsan: Switch to KUNIT_CASE_PARAM for parameterized tests".
Paul, Ingo, do you have a preference?

Thanks,
-- Marco

> ---
> kernel/kcsan/kcsan_test.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/kcsan/kcsan_test.c b/kernel/kcsan/kcsan_test.c
> index 9247009295b5..a29e9b1a30c8 100644
> --- a/kernel/kcsan/kcsan_test.c
> +++ b/kernel/kcsan/kcsan_test.c
> @@ -981,7 +981,7 @@ static const void *nthreads_gen_params(const void *prev, char *desc)
> const long min_required_cpus = 2 + min_unused_cpus;
>
> if (num_online_cpus() < min_required_cpus) {
> - pr_err_once("Too few online CPUs (%u < %d) for test\n",
> + pr_err_once("Too few online CPUs (%u < %ld) for test\n",
> num_online_cpus(), min_required_cpus);
> nthreads = 0;
> } else if (nthreads >= num_online_cpus() - min_unused_cpus) {
> --
> 2.29.2

2021-04-21 20:43:23

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] kcsan: fix printk format string

On Wed, Apr 21, 2021 at 03:59:40PM +0200, Marco Elver wrote:
> On Wed, 21 Apr 2021 at 15:51, Arnd Bergmann <[email protected]> wrote:
> > From: Arnd Bergmann <[email protected]>
> >
> > Printing a 'long' variable using the '%d' format string is wrong
> > and causes a warning from gcc:
> >
> > kernel/kcsan/kcsan_test.c: In function 'nthreads_gen_params':
> > include/linux/kern_levels.h:5:25: error: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Werror=format=]
> >
> > Use the appropriate format modifier.
> >
> > Fixes: f6a149140321 ("kcsan: Switch to KUNIT_CASE_PARAM for parameterized tests")
> > Signed-off-by: Arnd Bergmann <[email protected]>
>
> Reviewed-by: Marco Elver <[email protected]>
>
> Thank you!
>
> Normally KCSAN patches go through -rcu, but perhaps in this instance
> it should be picked up into -tip/locking/core directly, so it goes out
> with "kcsan: Switch to KUNIT_CASE_PARAM for parameterized tests".
> Paul, Ingo, do you have a preference?

I am good either way. I have queued it for the moment, but will remove
it if Ingo takes it.

Acked-by: Paul E. McKenney <[email protected]>

> Thanks,
> -- Marco
>
> > ---
> > kernel/kcsan/kcsan_test.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel/kcsan/kcsan_test.c b/kernel/kcsan/kcsan_test.c
> > index 9247009295b5..a29e9b1a30c8 100644
> > --- a/kernel/kcsan/kcsan_test.c
> > +++ b/kernel/kcsan/kcsan_test.c
> > @@ -981,7 +981,7 @@ static const void *nthreads_gen_params(const void *prev, char *desc)
> > const long min_required_cpus = 2 + min_unused_cpus;
> >
> > if (num_online_cpus() < min_required_cpus) {
> > - pr_err_once("Too few online CPUs (%u < %d) for test\n",
> > + pr_err_once("Too few online CPUs (%u < %ld) for test\n",
> > num_online_cpus(), min_required_cpus);
> > nthreads = 0;
> > } else if (nthreads >= num_online_cpus() - min_unused_cpus) {
> > --
> > 2.29.2

Subject: [tip: locking/core] kcsan: Fix printk format string

The following commit has been merged into the locking/core branch of tip:

Commit-ID: f4abe9967c6fdb511ee567e129a014b60945ab93
Gitweb: https://git.kernel.org/tip/f4abe9967c6fdb511ee567e129a014b60945ab93
Author: Arnd Bergmann <[email protected]>
AuthorDate: Wed, 21 Apr 2021 15:50:38 +02:00
Committer: Peter Zijlstra <[email protected]>
CommitterDate: Thu, 22 Apr 2021 14:36:03 +02:00

kcsan: Fix printk format string

Printing a 'long' variable using the '%d' format string is wrong
and causes a warning from gcc:

kernel/kcsan/kcsan_test.c: In function 'nthreads_gen_params':
include/linux/kern_levels.h:5:25: error: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Werror=format=]

Use the appropriate format modifier.

Fixes: f6a149140321 ("kcsan: Switch to KUNIT_CASE_PARAM for parameterized tests")
Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Reviewed-by: Marco Elver <[email protected]>
Acked-by: Paul E. McKenney <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
---
kernel/kcsan/kcsan_test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/kcsan/kcsan_test.c b/kernel/kcsan/kcsan_test.c
index b71751f..8bcffbd 100644
--- a/kernel/kcsan/kcsan_test.c
+++ b/kernel/kcsan/kcsan_test.c
@@ -984,7 +984,7 @@ static const void *nthreads_gen_params(const void *prev, char *desc)
const long min_required_cpus = 2 + min_unused_cpus;

if (num_online_cpus() < min_required_cpus) {
- pr_err_once("Too few online CPUs (%u < %d) for test\n",
+ pr_err_once("Too few online CPUs (%u < %ld) for test\n",
num_online_cpus(), min_required_cpus);
nthreads = 0;
} else if (nthreads >= num_online_cpus() - min_unused_cpus) {