]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
rust: irq: always inline functions using build_assert with arguments
authorAlexandre Courbot <acourbot@nvidia.com>
Mon, 8 Dec 2025 02:47:04 +0000 (11:47 +0900)
committerDanilo Krummrich <dakr@kernel.org>
Wed, 14 Jan 2026 19:32:28 +0000 (20:32 +0100)
`build_assert` relies on the compiler to optimize out its error path.
Functions using it with its arguments must thus always be inlined,
otherwise the error path of `build_assert` might not be optimized out,
triggering a build error.

Cc: stable@vger.kernel.org
Fixes: 746680ec6696 ("rust: irq: add flags module")
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Link: https://patch.msgid.link/20251208-io-build-assert-v3-6-98aded02c1ea@nvidia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
rust/kernel/irq/flags.rs

index adfde96ec47cf48bc290596ef41ca6b51e9c647b..d26e25af06eea8831ccc4f1dac28dd8ed2c2a61d 100644 (file)
@@ -96,6 +96,8 @@ impl Flags {
         self.0
     }
 
+    // Always inline to optimize out error path of `build_assert`.
+    #[inline(always)]
     const fn new(value: u32) -> Self {
         build_assert!(value as u64 <= c_ulong::MAX as u64);
         Self(value as c_ulong)