[PATCH] rust: kunit: fix warning when !CONFIG_PRINTK

Alexandre Courbot posted 1 patch 1 month, 3 weeks ago
There is a newer version of this series
rust/kernel/kunit.rs | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
Posted by Alexandre Courbot 1 month, 3 weeks ago
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>
Re: [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
Posted by David Gow 1 month, 3 weeks ago
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,

Re: [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
Posted by Alice Ryhl 1 month, 3 weeks ago
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.
Re: [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
Posted by Andreas Hindborg 1 month, 3 weeks ago
"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
Re: [PATCH] rust: kunit: fix warning when !CONFIG_PRINTK
Posted by Alice Ryhl 1 month, 3 weeks ago
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