Commit 5d9c4c27 authored by Alexandre Courbot's avatar Alexandre Courbot Committed by Danilo Krummrich
Browse files

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: 746680ec ("rust: irq: add flags module")
Reviewed-by: default avatarDaniel Almeida <daniel.almeida@collabora.com>
Signed-off-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
Link: https://patch.msgid.link/20251208-io-build-assert-v3-6-98aded02c1ea@nvidia.com


Signed-off-by: default avatarDanilo Krummrich <dakr@kernel.org>
parent 33d19f62
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -96,6 +96,8 @@ pub(crate) fn into_inner(self) -> c_ulong {
        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)