* [PATCH v1] rust: bug: prevent dead_code warning from warn_on!'s flags constant
@ 2026-07-20 3:55 FUJITA Tomonori
2026-07-20 5:54 ` Boqun Feng
0 siblings, 1 reply; 4+ messages in thread
From: FUJITA Tomonori @ 2026-07-20 3:55 UTC (permalink / raw)
To: ojeda
Cc: a.hindborg, acourbot, aliceryhl, bjorn3_gh, boqun, dakr,
daniel.almeida, gary, lossin, tamird, tmgross, work,
rust-for-linux, FUJITA Tomonori
From: FUJITA Tomonori <fujita.tomonori@gmail.com>
Fix the following dead_code warning on some configurations in an
atomic development branch:
warning: constant `WARN_ON_FLAGS` is never used
--> /linux/rust/kernel/bug.rs:126:19
|
126 | const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
| ^^^^^^^^^^^^^
|
::: /linux/rust/kernel/sync/srcu.rs:106:12
|
106 | if crate::warn_on!(
| ____________-
107 | | // SAFETY: By the type invariants, `self` contains a valid and pinned `struct srcu_struct`
108 | | // and `srcu_readers_active()` only checks the active reader count.
109 | | unsafe { bindings::srcu_readers_active(ptr) }
110 | | ) {
| |_________- in this macro invocation
|
= note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
= note: this warning originates in the macro `crate::warn_on` (in Nightly builds, run with -Z macro-backtrace for more info)
The warn_on! macro always defines a WARN_ON_FLAGS constant and hands it
to warn_flags!. On configurations where warn_flags! does not reference
its flags argument (the LOONGARCH/ARM variant, which only calls
WARN_ON(), and the !CONFIG_BUG no-op variant), the constant is left
unused and triggers a dead_code warning.
The warning only surfaces for callers inside the kernel crate itself:
uses from other crates expand an external macro, so the lint is
suppressed there.
Rename the constant to _WARN_ON_FLAGS so the underscore marks it as
possibly-unused, matching the existing _COND_STR constant in the same
macro. The name is still referenceable, so configurations that do use
the flags are unaffected.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
---
rust/kernel/bug.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rust/kernel/bug.rs b/rust/kernel/bug.rs
index ed943960f851..2fd7ee25abcb 100644
--- a/rust/kernel/bug.rs
+++ b/rust/kernel/bug.rs
@@ -123,9 +123,9 @@ macro_rules! warn_on {
const _COND_STR: &str = file!();
if cond {
- const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
+ const _WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
- $crate::warn_flags!(_COND_STR, WARN_ON_FLAGS);
+ $crate::warn_flags!(_COND_STR, _WARN_ON_FLAGS);
}
cond
}};
base-commit: 880c43b185ca52239e75bc546cc4f4d9154d0fed
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v1] rust: bug: prevent dead_code warning from warn_on!'s flags constant
2026-07-20 3:55 [PATCH v1] rust: bug: prevent dead_code warning from warn_on!'s flags constant FUJITA Tomonori
@ 2026-07-20 5:54 ` Boqun Feng
2026-07-20 6:05 ` FUJITA Tomonori
2026-07-20 15:27 ` Paul E. McKenney
0 siblings, 2 replies; 4+ messages in thread
From: Boqun Feng @ 2026-07-20 5:54 UTC (permalink / raw)
To: FUJITA Tomonori
Cc: ojeda, a.hindborg, acourbot, aliceryhl, bjorn3_gh, dakr,
daniel.almeida, gary, lossin, tamird, tmgross, work,
rust-for-linux, FUJITA Tomonori, paulmck
On Mon, Jul 20, 2026 at 12:55:10PM +0900, FUJITA Tomonori wrote:
> From: FUJITA Tomonori <fujita.tomonori@gmail.com>
>
> Fix the following dead_code warning on some configurations in an
> atomic development branch:
>
> warning: constant `WARN_ON_FLAGS` is never used
> --> /linux/rust/kernel/bug.rs:126:19
> |
> 126 | const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
> | ^^^^^^^^^^^^^
> |
> ::: /linux/rust/kernel/sync/srcu.rs:106:12
> |
> 106 | if crate::warn_on!(
> | ____________-
> 107 | | // SAFETY: By the type invariants, `self` contains a valid and pinned `struct srcu_struct`
> 108 | | // and `srcu_readers_active()` only checks the active reader count.
> 109 | | unsafe { bindings::srcu_readers_active(ptr) }
> 110 | | ) {
> | |_________- in this macro invocation
> |
> = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
> = note: this warning originates in the macro `crate::warn_on` (in Nightly builds, run with -Z macro-backtrace for more info)
>
> The warn_on! macro always defines a WARN_ON_FLAGS constant and hands it
> to warn_flags!. On configurations where warn_flags! does not reference
> its flags argument (the LOONGARCH/ARM variant, which only calls
> WARN_ON(), and the !CONFIG_BUG no-op variant), the constant is left
> unused and triggers a dead_code warning.
>
> The warning only surfaces for callers inside the kernel crate itself:
> uses from other crates expand an external macro, so the lint is
> suppressed there.
>
> Rename the constant to _WARN_ON_FLAGS so the underscore marks it as
> possibly-unused, matching the existing _COND_STR constant in the same
> macro. The name is still referenceable, so configurations that do use
> the flags are unaffected.
>
> Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
[Cc Paul]
Do we need a "Fixes" tag here?
FWIW:
Reviewed-by: Boqun Feng <boqun@kernel.org>
Regards,
Boqun
> ---
> rust/kernel/bug.rs | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/rust/kernel/bug.rs b/rust/kernel/bug.rs
> index ed943960f851..2fd7ee25abcb 100644
> --- a/rust/kernel/bug.rs
> +++ b/rust/kernel/bug.rs
> @@ -123,9 +123,9 @@ macro_rules! warn_on {
> const _COND_STR: &str = file!();
>
> if cond {
> - const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
> + const _WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
>
> - $crate::warn_flags!(_COND_STR, WARN_ON_FLAGS);
> + $crate::warn_flags!(_COND_STR, _WARN_ON_FLAGS);
> }
> cond
> }};
>
> base-commit: 880c43b185ca52239e75bc546cc4f4d9154d0fed
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v1] rust: bug: prevent dead_code warning from warn_on!'s flags constant
2026-07-20 5:54 ` Boqun Feng
@ 2026-07-20 6:05 ` FUJITA Tomonori
2026-07-20 15:27 ` Paul E. McKenney
1 sibling, 0 replies; 4+ messages in thread
From: FUJITA Tomonori @ 2026-07-20 6:05 UTC (permalink / raw)
To: boqun
Cc: tomo, ojeda, a.hindborg, acourbot, aliceryhl, bjorn3_gh, dakr,
daniel.almeida, gary, lossin, tamird, tmgross, work,
rust-for-linux, fujita.tomonori, paulmck
On Sun, 19 Jul 2026 22:54:24 -0700
Boqun Feng <boqun@kernel.org> wrote:
> On Mon, Jul 20, 2026 at 12:55:10PM +0900, FUJITA Tomonori wrote:
>> From: FUJITA Tomonori <fujita.tomonori@gmail.com>
>>
>> Fix the following dead_code warning on some configurations in an
>> atomic development branch:
>>
>> warning: constant `WARN_ON_FLAGS` is never used
>> --> /linux/rust/kernel/bug.rs:126:19
>> |
>> 126 | const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
>> | ^^^^^^^^^^^^^
>> |
>> ::: /linux/rust/kernel/sync/srcu.rs:106:12
>> |
>> 106 | if crate::warn_on!(
>> | ____________-
>> 107 | | // SAFETY: By the type invariants, `self` contains a valid and pinned `struct srcu_struct`
>> 108 | | // and `srcu_readers_active()` only checks the active reader count.
>> 109 | | unsafe { bindings::srcu_readers_active(ptr) }
>> 110 | | ) {
>> | |_________- in this macro invocation
>> |
>> = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
>> = note: this warning originates in the macro `crate::warn_on` (in Nightly builds, run with -Z macro-backtrace for more info)
>>
>> The warn_on! macro always defines a WARN_ON_FLAGS constant and hands it
>> to warn_flags!. On configurations where warn_flags! does not reference
>> its flags argument (the LOONGARCH/ARM variant, which only calls
>> WARN_ON(), and the !CONFIG_BUG no-op variant), the constant is left
>> unused and triggers a dead_code warning.
>>
>> The warning only surfaces for callers inside the kernel crate itself:
>> uses from other crates expand an external macro, so the lint is
>> suppressed there.
>>
>> Rename the constant to _WARN_ON_FLAGS so the underscore marks it as
>> possibly-unused, matching the existing _COND_STR constant in the same
>> macro. The name is still referenceable, so configurations that do use
>> the flags are unaffected.
>>
>> Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
>
> [Cc Paul]
>
> Do we need a "Fixes" tag here?
Right, we likely do.
Fixes: dff64b072708 ("rust: Add warn_on macro")
> FWIW:
>
> Reviewed-by: Boqun Feng <boqun@kernel.org>
Thanks!
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v1] rust: bug: prevent dead_code warning from warn_on!'s flags constant
2026-07-20 5:54 ` Boqun Feng
2026-07-20 6:05 ` FUJITA Tomonori
@ 2026-07-20 15:27 ` Paul E. McKenney
1 sibling, 0 replies; 4+ messages in thread
From: Paul E. McKenney @ 2026-07-20 15:27 UTC (permalink / raw)
To: Boqun Feng
Cc: FUJITA Tomonori, ojeda, a.hindborg, acourbot, aliceryhl,
bjorn3_gh, dakr, daniel.almeida, gary, lossin, tamird, tmgross,
work, rust-for-linux, FUJITA Tomonori
On Sun, Jul 19, 2026 at 10:54:24PM -0700, Boqun Feng wrote:
> On Mon, Jul 20, 2026 at 12:55:10PM +0900, FUJITA Tomonori wrote:
> > From: FUJITA Tomonori <fujita.tomonori@gmail.com>
> >
> > Fix the following dead_code warning on some configurations in an
> > atomic development branch:
> >
> > warning: constant `WARN_ON_FLAGS` is never used
> > --> /linux/rust/kernel/bug.rs:126:19
> > |
> > 126 | const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
> > | ^^^^^^^^^^^^^
> > |
> > ::: /linux/rust/kernel/sync/srcu.rs:106:12
> > |
> > 106 | if crate::warn_on!(
> > | ____________-
> > 107 | | // SAFETY: By the type invariants, `self` contains a valid and pinned `struct srcu_struct`
> > 108 | | // and `srcu_readers_active()` only checks the active reader count.
> > 109 | | unsafe { bindings::srcu_readers_active(ptr) }
> > 110 | | ) {
> > | |_________- in this macro invocation
> > |
> > = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
> > = note: this warning originates in the macro `crate::warn_on` (in Nightly builds, run with -Z macro-backtrace for more info)
> >
> > The warn_on! macro always defines a WARN_ON_FLAGS constant and hands it
> > to warn_flags!. On configurations where warn_flags! does not reference
> > its flags argument (the LOONGARCH/ARM variant, which only calls
> > WARN_ON(), and the !CONFIG_BUG no-op variant), the constant is left
> > unused and triggers a dead_code warning.
> >
> > The warning only surfaces for callers inside the kernel crate itself:
> > uses from other crates expand an external macro, so the lint is
> > suppressed there.
> >
> > Rename the constant to _WARN_ON_FLAGS so the underscore marks it as
> > possibly-unused, matching the existing _COND_STR constant in the same
> > macro. The name is still referenceable, so configurations that do use
> > the flags are unaffected.
> >
> > Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
>
> [Cc Paul]
>
> Do we need a "Fixes" tag here?
Future bug-chasers would thank us for a "Fixes" tag. ;-)
> FWIW:
>
> Reviewed-by: Boqun Feng <boqun@kernel.org>
And thank you both for the fix. I will keep the Rust-SRCU series.
Until further notice, anyway. ;-)
Thanx, Paul
> Regards,
> Boqun
>
> > ---
> > rust/kernel/bug.rs | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/rust/kernel/bug.rs b/rust/kernel/bug.rs
> > index ed943960f851..2fd7ee25abcb 100644
> > --- a/rust/kernel/bug.rs
> > +++ b/rust/kernel/bug.rs
> > @@ -123,9 +123,9 @@ macro_rules! warn_on {
> > const _COND_STR: &str = file!();
> >
> > if cond {
> > - const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
> > + const _WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
> >
> > - $crate::warn_flags!(_COND_STR, WARN_ON_FLAGS);
> > + $crate::warn_flags!(_COND_STR, _WARN_ON_FLAGS);
> > }
> > cond
> > }};
> >
> > base-commit: 880c43b185ca52239e75bc546cc4f4d9154d0fed
> > --
> > 2.43.0
> >
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-20 15:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-20 3:55 [PATCH v1] rust: bug: prevent dead_code warning from warn_on!'s flags constant FUJITA Tomonori
2026-07-20 5:54 ` Boqun Feng
2026-07-20 6:05 ` FUJITA Tomonori
2026-07-20 15:27 ` Paul E. McKenney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox