drivers/firmware/psci/psci_checker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
kthread_create_on_cpu() always requires format string to contain one
'%u' at the end, as it automatically adds the CPU ID when passing it
to kthread_create_on_node(). The former isn't marked as __printf()
as it's not printf-like itself, which effectively hides this from
the compiler.
If you convert this function to printf-like, you'll see the following:
In file included from drivers/firmware/psci/psci_checker.c:15:
drivers/firmware/psci/psci_checker.c: In function 'suspend_tests':
drivers/firmware/psci/psci_checker.c:401:48: warning: too many arguments for format [-Wformat-extra-args]
401 | "psci_suspend_test");
| ^~~~~~~~~~~~~~~~~~~
drivers/firmware/psci/psci_checker.c:400:32: warning: data argument not used by format string [-Wformat-extra-args]
400 | (void *)(long)cpu, cpu,
| ^
401 | "psci_suspend_test");
| ~~~~~~~~~~~~~~~~~~~
Add the missing format literal to fix this. Now the corresponding
kthread will be named as "psci_suspend_test-<cpuid>", as it's meant by
kthread_create_on_cpu().
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202408141012.KhvKaxoh-lkp@intel.com
Closes: https://lore.kernel.org/oe-kbuild-all/202408141243.eQiEOQQe-lkp@intel.com
Fixes: ea8b1c4a6019 ("drivers: psci: PSCI checker module")
Cc: stable@vger.kernel.org # 4.10+
Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>
---
drivers/firmware/psci/psci_checker.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/psci/psci_checker.c
index 116eb465cdb4..ecc511c745ce 100644
--- a/drivers/firmware/psci/psci_checker.c
+++ b/drivers/firmware/psci/psci_checker.c
@@ -398,7 +398,7 @@ static int suspend_tests(void)
thread = kthread_create_on_cpu(suspend_test_thread,
(void *)(long)cpu, cpu,
- "psci_suspend_test");
+ "psci_suspend_test-%u");
if (IS_ERR(thread))
pr_err("Failed to create kthread on CPU %d\n", cpu);
else
--
2.46.2
From: Alexander Lobakin <aleksander.lobakin@intel.com> Date: Mon, 30 Sep 2024 17:44:33 +0200 > kthread_create_on_cpu() always requires format string to contain one > '%u' at the end, as it automatically adds the CPU ID when passing it > to kthread_create_on_node(). The former isn't marked as __printf() > as it's not printf-like itself, which effectively hides this from > the compiler. > If you convert this function to printf-like, you'll see the following: > > In file included from drivers/firmware/psci/psci_checker.c:15: > drivers/firmware/psci/psci_checker.c: In function 'suspend_tests': > drivers/firmware/psci/psci_checker.c:401:48: warning: too many arguments for format [-Wformat-extra-args] > 401 | "psci_suspend_test"); > | ^~~~~~~~~~~~~~~~~~~ > drivers/firmware/psci/psci_checker.c:400:32: warning: data argument not used by format string [-Wformat-extra-args] > 400 | (void *)(long)cpu, cpu, > | ^ > 401 | "psci_suspend_test"); > | ~~~~~~~~~~~~~~~~~~~ > > Add the missing format literal to fix this. Now the corresponding > kthread will be named as "psci_suspend_test-<cpuid>", as it's meant by > kthread_create_on_cpu(). > > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202408141012.KhvKaxoh-lkp@intel.com > Closes: https://lore.kernel.org/oe-kbuild-all/202408141243.eQiEOQQe-lkp@intel.com > Fixes: ea8b1c4a6019 ("drivers: psci: PSCI checker module") > Cc: stable@vger.kernel.org # 4.10+ > Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com> Ping? Who's taking this? > --- > drivers/firmware/psci/psci_checker.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/psci/psci_checker.c > index 116eb465cdb4..ecc511c745ce 100644 > --- a/drivers/firmware/psci/psci_checker.c > +++ b/drivers/firmware/psci/psci_checker.c > @@ -398,7 +398,7 @@ static int suspend_tests(void) > > thread = kthread_create_on_cpu(suspend_test_thread, > (void *)(long)cpu, cpu, > - "psci_suspend_test"); > + "psci_suspend_test-%u"); > if (IS_ERR(thread)) > pr_err("Failed to create kthread on CPU %d\n", cpu); > else Thanks, Olek
On Wed, Oct 09, 2024 at 05:26:18PM +0200, Alexander Lobakin wrote: > From: Alexander Lobakin <aleksander.lobakin@intel.com> > Date: Mon, 30 Sep 2024 17:44:33 +0200 > > > kthread_create_on_cpu() always requires format string to contain one > > '%u' at the end, as it automatically adds the CPU ID when passing it > > to kthread_create_on_node(). The former isn't marked as __printf() > > as it's not printf-like itself, which effectively hides this from > > the compiler. > > If you convert this function to printf-like, you'll see the following: > > > > In file included from drivers/firmware/psci/psci_checker.c:15: > > drivers/firmware/psci/psci_checker.c: In function 'suspend_tests': > > drivers/firmware/psci/psci_checker.c:401:48: warning: too many arguments for format [-Wformat-extra-args] > > 401 | "psci_suspend_test"); > > | ^~~~~~~~~~~~~~~~~~~ > > drivers/firmware/psci/psci_checker.c:400:32: warning: data argument not used by format string [-Wformat-extra-args] > > 400 | (void *)(long)cpu, cpu, > > | ^ > > 401 | "psci_suspend_test"); > > | ~~~~~~~~~~~~~~~~~~~ > > > > Add the missing format literal to fix this. Now the corresponding > > kthread will be named as "psci_suspend_test-<cpuid>", as it's meant by > > kthread_create_on_cpu(). > > > > Reported-by: kernel test robot <lkp@intel.com> > > Closes: https://lore.kernel.org/oe-kbuild-all/202408141012.KhvKaxoh-lkp@intel.com > > Closes: https://lore.kernel.org/oe-kbuild-all/202408141243.eQiEOQQe-lkp@intel.com > > Fixes: ea8b1c4a6019 ("drivers: psci: PSCI checker module") > > Cc: stable@vger.kernel.org # 4.10+ > > Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com> > > Ping? Who's taking this? I would expect this to go through the soc tree. Arnd, are you happy to pick this up? FWIW: Acked-by: Mark Rutland <mark.rutland@arm.com> Mark. > > > --- > > drivers/firmware/psci/psci_checker.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/psci/psci_checker.c > > index 116eb465cdb4..ecc511c745ce 100644 > > --- a/drivers/firmware/psci/psci_checker.c > > +++ b/drivers/firmware/psci/psci_checker.c > > @@ -398,7 +398,7 @@ static int suspend_tests(void) > > > > thread = kthread_create_on_cpu(suspend_test_thread, > > (void *)(long)cpu, cpu, > > - "psci_suspend_test"); > > + "psci_suspend_test-%u"); > > if (IS_ERR(thread)) > > pr_err("Failed to create kthread on CPU %d\n", cpu); > > else > > Thanks, > Olek
On Mon, Sep 30, 2024 at 05:44:33PM +0200, Alexander Lobakin wrote: > kthread_create_on_cpu() always requires format string to contain one > '%u' at the end, as it automatically adds the CPU ID when passing it > to kthread_create_on_node(). The former isn't marked as __printf() > as it's not printf-like itself, which effectively hides this from > the compiler. > If you convert this function to printf-like, you'll see the following: > > In file included from drivers/firmware/psci/psci_checker.c:15: > drivers/firmware/psci/psci_checker.c: In function 'suspend_tests': > drivers/firmware/psci/psci_checker.c:401:48: warning: too many arguments for format [-Wformat-extra-args] > 401 | "psci_suspend_test"); > | ^~~~~~~~~~~~~~~~~~~ > drivers/firmware/psci/psci_checker.c:400:32: warning: data argument not used by format string [-Wformat-extra-args] > 400 | (void *)(long)cpu, cpu, > | ^ > 401 | "psci_suspend_test"); > | ~~~~~~~~~~~~~~~~~~~ > > Add the missing format literal to fix this. Now the corresponding > kthread will be named as "psci_suspend_test-<cpuid>", as it's meant by > kthread_create_on_cpu(). > > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202408141012.KhvKaxoh-lkp@intel.com > Closes: https://lore.kernel.org/oe-kbuild-all/202408141243.eQiEOQQe-lkp@intel.com > Fixes: ea8b1c4a6019 ("drivers: psci: PSCI checker module") > Cc: stable@vger.kernel.org # 4.10+ > Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com> > --- > drivers/firmware/psci/psci_checker.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Acked-by: Lorenzo Pieralisi <lpieralisi@kernel.org> > diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/psci/psci_checker.c > index 116eb465cdb4..ecc511c745ce 100644 > --- a/drivers/firmware/psci/psci_checker.c > +++ b/drivers/firmware/psci/psci_checker.c > @@ -398,7 +398,7 @@ static int suspend_tests(void) > > thread = kthread_create_on_cpu(suspend_test_thread, > (void *)(long)cpu, cpu, > - "psci_suspend_test"); > + "psci_suspend_test-%u"); > if (IS_ERR(thread)) > pr_err("Failed to create kthread on CPU %d\n", cpu); > else > -- > 2.46.2 >
© 2016 - 2024 Red Hat, Inc.