* [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
@ 2026-02-24 7:45 Alexandre Courbot
2026-02-24 7:49 ` Alice Ryhl
2026-02-24 9:01 ` David Gow
0 siblings, 2 replies; 5+ messages in thread
From: Alexandre Courbot @ 2026-02-24 7:45 UTC (permalink / raw)
To: Brendan Higgins, David Gow, Rae Moar, Miguel Ojeda, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Alice Ryhl, Trevor Gross, Danilo Krummrich, Shuah Khan
Cc: linux-kselftest, kunit-dev, rust-for-linux, linux-kernel,
Alexandre Courbot
If `CONFIG_PRINTK` is not set, then the following warnings are issued
during build:
warning: unused variable: `args`
--> ../rust/kernel/kunit.rs:16:12
|
16 | pub fn err(args: fmt::Arguments<'_>) {
| ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
|
= note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
warning: unused variable: `args`
--> ../rust/kernel/kunit.rs:32:13
|
32 | pub fn info(args: fmt::Arguments<'_>) {
| ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
Fix this by allowing unused variables on these methods for this
(arguably rare) case.
Fixes: a66d733da801 ("rust: support running Rust documentation tests as KUnit ones")
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
rust/kernel/kunit.rs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/rust/kernel/kunit.rs b/rust/kernel/kunit.rs
index f93f24a60bdd..5da342f5c84a 100644
--- a/rust/kernel/kunit.rs
+++ b/rust/kernel/kunit.rs
@@ -13,6 +13,8 @@
///
/// Public but hidden since it should only be used from KUnit generated code.
#[doc(hidden)]
+// `args` is unused if `CONFIG_PRINTK` is not set.
+#[allow(unused_variables)]
pub fn err(args: fmt::Arguments<'_>) {
// SAFETY: The format string is null-terminated and the `%pA` specifier matches the argument we
// are passing.
@@ -29,6 +31,8 @@ pub fn err(args: fmt::Arguments<'_>) {
///
/// Public but hidden since it should only be used from KUnit generated code.
#[doc(hidden)]
+// `args` is unused if `CONFIG_PRINTK` is not set.
+#[allow(unused_variables)]
pub fn info(args: fmt::Arguments<'_>) {
// SAFETY: The format string is null-terminated and the `%pA` specifier matches the argument we
// are passing.
---
base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
change-id: 20260224-unused_var_err-996d7ffa27c5
Best regards,
--
Alexandre Courbot <acourbot@nvidia.com>
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
2026-02-24 7:45 [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK Alexandre Courbot
@ 2026-02-24 7:49 ` Alice Ryhl
2026-02-24 7:52 ` Alice Ryhl
2026-02-24 12:57 ` Andreas Hindborg
2026-02-24 9:01 ` David Gow
1 sibling, 2 replies; 5+ messages in thread
From: Alice Ryhl @ 2026-02-24 7:49 UTC (permalink / raw)
To: Alexandre Courbot
Cc: Brendan Higgins, David Gow, Rae Moar, Miguel Ojeda, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Trevor Gross, Danilo Krummrich, Shuah Khan, linux-kselftest,
kunit-dev, rust-for-linux, linux-kernel
On Tue, Feb 24, 2026 at 04:45:30PM +0900, Alexandre Courbot wrote:
> If `CONFIG_PRINTK` is not set, then the following warnings are issued
> during build:
>
> warning: unused variable: `args`
> --> ../rust/kernel/kunit.rs:16:12
> |
> 16 | pub fn err(args: fmt::Arguments<'_>) {
> | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
> |
> = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
>
> warning: unused variable: `args`
> --> ../rust/kernel/kunit.rs:32:13
> |
> 32 | pub fn info(args: fmt::Arguments<'_>) {
> | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
>
> Fix this by allowing unused variables on these methods for this
> (arguably rare) case.
>
> Fixes: a66d733da801 ("rust: support running Rust documentation tests as KUnit ones")
> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
I think this would be a better fix:
diff --git a/rust/kernel/kunit.rs b/rust/kernel/kunit.rs
index f93f24a60bdd..dbf3c62ffa09 100644
--- a/rust/kernel/kunit.rs
+++ b/rust/kernel/kunit.rs
@@ -23,6 +23,9 @@ pub fn err(args: fmt::Arguments<'_>) {
core::ptr::from_ref(&args).cast::<c_void>(),
);
}
+
+ #[cfg(not(CONFIG_PRINTK))]
+ let _ = args;
}
/// Prints a KUnit info-level message.
@@ -39,6 +42,9 @@ pub fn info(args: fmt::Arguments<'_>) {
core::ptr::from_ref(&args).cast::<c_void>(),
);
}
+
+ #[cfg(not(CONFIG_PRINTK))]
+ let _ = args;
}
/// Asserts that a boolean expression is `true` at runtime.
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
2026-02-24 7:49 ` Alice Ryhl
@ 2026-02-24 7:52 ` Alice Ryhl
2026-02-24 12:57 ` Andreas Hindborg
1 sibling, 0 replies; 5+ messages in thread
From: Alice Ryhl @ 2026-02-24 7:52 UTC (permalink / raw)
To: Alexandre Courbot
Cc: Brendan Higgins, David Gow, Rae Moar, Miguel Ojeda, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Trevor Gross, Danilo Krummrich, Shuah Khan, linux-kselftest,
kunit-dev, rust-for-linux, linux-kernel
On Tue, Feb 24, 2026 at 07:49:45AM +0000, Alice Ryhl wrote:
> On Tue, Feb 24, 2026 at 04:45:30PM +0900, Alexandre Courbot wrote:
> > If `CONFIG_PRINTK` is not set, then the following warnings are issued
> > during build:
> >
> > warning: unused variable: `args`
> > --> ../rust/kernel/kunit.rs:16:12
> > |
> > 16 | pub fn err(args: fmt::Arguments<'_>) {
> > | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
> > |
> > = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
> >
> > warning: unused variable: `args`
> > --> ../rust/kernel/kunit.rs:32:13
> > |
> > 32 | pub fn info(args: fmt::Arguments<'_>) {
> > | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
> >
> > Fix this by allowing unused variables on these methods for this
> > (arguably rare) case.
> >
> > Fixes: a66d733da801 ("rust: support running Rust documentation tests as KUnit ones")
> > Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
>
> I think this would be a better fix:
>
> diff --git a/rust/kernel/kunit.rs b/rust/kernel/kunit.rs
> index f93f24a60bdd..dbf3c62ffa09 100644
> --- a/rust/kernel/kunit.rs
> +++ b/rust/kernel/kunit.rs
> @@ -23,6 +23,9 @@ pub fn err(args: fmt::Arguments<'_>) {
> core::ptr::from_ref(&args).cast::<c_void>(),
> );
> }
> +
> + #[cfg(not(CONFIG_PRINTK))]
> + let _ = args;
Or if a bare _ doesn't work, then:
let _unused = args;
matching tracepoint.rs
Alice
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
2026-02-24 7:45 [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK Alexandre Courbot
2026-02-24 7:49 ` Alice Ryhl
@ 2026-02-24 9:01 ` David Gow
1 sibling, 0 replies; 5+ messages in thread
From: David Gow @ 2026-02-24 9:01 UTC (permalink / raw)
To: Alexandre Courbot, Brendan Higgins, Rae Moar, Miguel Ojeda,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Shuah Khan
Cc: linux-kselftest, kunit-dev, rust-for-linux, linux-kernel
Le 24/02/2026 à 3:45 PM, 'Alexandre Courbot' via KUnit Development a écrit :
> If `CONFIG_PRINTK` is not set, then the following warnings are issued
> during build:
>
> warning: unused variable: `args`
> --> ../rust/kernel/kunit.rs:16:12
> |
> 16 | pub fn err(args: fmt::Arguments<'_>) {
> | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
> |
> = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
>
> warning: unused variable: `args`
> --> ../rust/kernel/kunit.rs:32:13
> |
> 32 | pub fn info(args: fmt::Arguments<'_>) {
> | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
>
> Fix this by allowing unused variables on these methods for this
> (arguably rare) case.
>
> Fixes: a66d733da801 ("rust: support running Rust documentation tests as KUnit ones")
> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
> ---
Thanks. I think Alice's suggestion of adding a `let _ = args;` line,
rather than disabling the unused_variables warning is probably the
better way of handling this.
(That being said, those err() and info() functions probably need some
reworking so that -- in the cases where it makes sense -- they call into
the KUnit logging functions, not just printk.)
Cheers,
-- David
> rust/kernel/kunit.rs | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/rust/kernel/kunit.rs b/rust/kernel/kunit.rs
> index f93f24a60bdd..5da342f5c84a 100644
> --- a/rust/kernel/kunit.rs
> +++ b/rust/kernel/kunit.rs
> @@ -13,6 +13,8 @@
> ///
> /// Public but hidden since it should only be used from KUnit generated code.
> #[doc(hidden)]
> +// `args` is unused if `CONFIG_PRINTK` is not set.
> +#[allow(unused_variables)]
> pub fn err(args: fmt::Arguments<'_>) {
> // SAFETY: The format string is null-terminated and the `%pA` specifier matches the argument we
> // are passing.
> @@ -29,6 +31,8 @@ pub fn err(args: fmt::Arguments<'_>) {
> ///
> /// Public but hidden since it should only be used from KUnit generated code.
> #[doc(hidden)]
> +// `args` is unused if `CONFIG_PRINTK` is not set.
> +#[allow(unused_variables)]
> pub fn info(args: fmt::Arguments<'_>) {
> // SAFETY: The format string is null-terminated and the `%pA` specifier matches the argument we
> // are passing.
>
> ---
> base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
> change-id: 20260224-unused_var_err-996d7ffa27c5
>
> Best regards,
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
2026-02-24 7:49 ` Alice Ryhl
2026-02-24 7:52 ` Alice Ryhl
@ 2026-02-24 12:57 ` Andreas Hindborg
1 sibling, 0 replies; 5+ messages in thread
From: Andreas Hindborg @ 2026-02-24 12:57 UTC (permalink / raw)
To: Alice Ryhl, Alexandre Courbot
Cc: Brendan Higgins, David Gow, Rae Moar, Miguel Ojeda, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Trevor Gross,
Danilo Krummrich, Shuah Khan, linux-kselftest, kunit-dev,
rust-for-linux, linux-kernel
"Alice Ryhl" <aliceryhl@google.com> writes:
> On Tue, Feb 24, 2026 at 04:45:30PM +0900, Alexandre Courbot wrote:
>> If `CONFIG_PRINTK` is not set, then the following warnings are issued
>> during build:
>>
>> warning: unused variable: `args`
>> --> ../rust/kernel/kunit.rs:16:12
>> |
>> 16 | pub fn err(args: fmt::Arguments<'_>) {
>> | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
>> |
>> = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
>>
>> warning: unused variable: `args`
>> --> ../rust/kernel/kunit.rs:32:13
>> |
>> 32 | pub fn info(args: fmt::Arguments<'_>) {
>> | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
>>
>> Fix this by allowing unused variables on these methods for this
>> (arguably rare) case.
>>
>> Fixes: a66d733da801 ("rust: support running Rust documentation tests as KUnit ones")
>> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
>
> I think this would be a better fix:
>
> diff --git a/rust/kernel/kunit.rs b/rust/kernel/kunit.rs
> index f93f24a60bdd..dbf3c62ffa09 100644
> --- a/rust/kernel/kunit.rs
> +++ b/rust/kernel/kunit.rs
> @@ -23,6 +23,9 @@ pub fn err(args: fmt::Arguments<'_>) {
> core::ptr::from_ref(&args).cast::<c_void>(),
> );
> }
> +
> + #[cfg(not(CONFIG_PRINTK))]
> + let _ = args;
> }
>
> /// Prints a KUnit info-level message.
> @@ -39,6 +42,9 @@ pub fn info(args: fmt::Arguments<'_>) {
> core::ptr::from_ref(&args).cast::<c_void>(),
> );
> }
> +
> + #[cfg(not(CONFIG_PRINTK))]
> + let _ = args;
> }
>
> /// Asserts that a boolean expression is `true` at runtime.
Why not a conditional attribute on the argument?
Best regards,
Andreas Hindborg
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-02-24 12:58 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-24 7:45 [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK Alexandre Courbot
2026-02-24 7:49 ` Alice Ryhl
2026-02-24 7:52 ` Alice Ryhl
2026-02-24 12:57 ` Andreas Hindborg
2026-02-24 9:01 ` David Gow
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox