Skip to content

Commit 5d9c4c2

Browse files
GnurouDanilo Krummrich
authored andcommitted
rust: irq: always inline functions using build_assert with arguments
`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: 746680e ("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>
1 parent 33d19f6 commit 5d9c4c2

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

rust/kernel/irq/flags.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ impl Flags {
9696
self.0
9797
}
9898

99+
// Always inline to optimize out error path of `build_assert`.
100+
#[inline(always)]
99101
const fn new(value: u32) -> Self {
100102
build_assert!(value as u64 <= c_ulong::MAX as u64);
101103
Self(value as c_ulong)

0 commit comments

Comments
 (0)