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: [email protected] Fixes: 746680e ("rust: irq: add flags module") Reviewed-by: Daniel Almeida <[email protected]> Signed-off-by: Alexandre Courbot <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Danilo Krummrich <[email protected]>
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)