[PATCH] rust: bug: fix `dead_code` warning in `warn_on!`

Miguel Ojeda <[email protected]>
Newsgroups dev.linux.lists.soc,dev.linux.lists.loongarch,org.infradead.lists.linux-arm-kernel,org.kernel.vger.rust-for-linux,org.kernel.vger.stable
Message-ID <[email protected]>
On arm and loongarch64, or under `CONFIG_BUG=n`, the upcoming SRCU
abstractions from commit

  59cf3a5bda61 ("rust: sync: add SRCU abstraction")

use `warn_on!`, which in turn warns:

    error: constant `WARN_ON_FLAGS` is never used
       --> rust/kernel/bug.rs:126:19
        |
    126 |               const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN);
        |                     ^^^^^^^^^^^^^
        |
       ::: 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: `-D dead-code` implied by `-D warnings`
        = help: to override `-D warnings` add `#[allow(dead_code)]`
        = note: this error originates in the macro `crate::warn_on` (in Nightly builds, run with -Z macro-backtrace for more info)

The reason is that `warn_flags!` discards both arguments in those cases,
and so the `const` becomes unused. And since it is a macro, it went
unnoticed so far.

Thus fix it by simplifying by removing the `const`.

Cc: [email protected]
Fixes: dff64b072708 ("rust: Add warn_on macro")
Signed-off-by: Miguel Ojeda <[email protected]>
---
Either this or adding an underscore.

 rust/kernel/bug.rs | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/rust/kernel/bug.rs b/rust/kernel/bug.rs
index ed943960f851..874adb93cdfe 100644
--- a/rust/kernel/bug.rs
+++ b/rust/kernel/bug.rs
@@ -123,9 +123,10 @@ macro_rules! warn_on {
         const _COND_STR: &str = file!();

         if cond {
-            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,
+                $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN)
+            );
         }
         cond
     }};

base-commit: dc01dfb37b34beeefcfe1c3055364d41a4070c7e
--
2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.