mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
rust: sync: refcount: 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: bb38f35b35 ("rust: implement `kernel::sync::Refcount`")
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Acked-by: Boqun Feng <boqun.feng@gmail.com>
Link: https://patch.msgid.link/20251208-io-build-assert-v3-5-98aded02c1ea@nvidia.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
This commit is contained in:
committed by
Miguel Ojeda
parent
09c3c9112d
commit
d6ff6e8700
@@ -23,7 +23,8 @@ impl Refcount {
|
||||
/// Construct a new [`Refcount`] from an initial value.
|
||||
///
|
||||
/// The initial value should be non-saturated.
|
||||
#[inline]
|
||||
// Always inline to optimize out error path of `build_assert`.
|
||||
#[inline(always)]
|
||||
pub fn new(value: i32) -> Self {
|
||||
build_assert!(value >= 0, "initial value saturated");
|
||||
// SAFETY: There are no safety requirements for this FFI call.
|
||||
|
||||
Reference in New Issue
Block a user