[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250812144215.64809-1-baptiste.lepers@gmail.com>
Date: Tue, 12 Aug 2025 16:42:11 +0200
From: Baptiste Lepers <baptiste.lepers@...il.com>
To:
Cc: Baptiste Lepers <baptiste.lepers@...il.com>,
stable@...r.kernel.org,
Viresh Kumar <viresh.kumar@...aro.org>,
Yury Norov <yury.norov@...il.com>,
Miguel Ojeda <ojeda@...nel.org>,
Alex Gaynor <alex.gaynor@...il.com>,
Boqun Feng <boqun.feng@...il.com>,
Gary Guo <gary@...yguo.net>,
Björn Roy Baron <bjorn3_gh@...tonmail.com>,
Benno Lossin <lossin@...nel.org>,
Andreas Hindborg <a.hindborg@...nel.org>,
Alice Ryhl <aliceryhl@...gle.com>,
Trevor Gross <tmgross@...ch.edu>,
Danilo Krummrich <dakr@...nel.org>,
rust-for-linux@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH] rust: cpumask: Mark CpumaskVar as transparent
Unsafe code in CpumaskVar's methods assumes that the type has the same
layout as `bindings::cpumask_var_t`. This is not guaranteed by
the default struct representation in Rust, but requires specifying the
`transparent` representation.
Fixes: 8961b8cb3099a ("rust: cpumask: Add initial abstractions")
Cc: stable@...r.kernel.org
Signed-off-by: Baptiste Lepers <baptiste.lepers@...il.com>
---
rust/kernel/cpumask.rs | 1 +
1 file changed, 1 insertion(+)
diff --git a/rust/kernel/cpumask.rs b/rust/kernel/cpumask.rs
index 3fcbff438670..05e1c882404e 100644
--- a/rust/kernel/cpumask.rs
+++ b/rust/kernel/cpumask.rs
@@ -212,6 +212,7 @@ pub fn copy(&self, dstp: &mut Self) {
/// }
/// assert_eq!(mask2.weight(), count);
/// ```
+#[repr(transparent)]
pub struct CpumaskVar {
#[cfg(CONFIG_CPUMASK_OFFSTACK)]
ptr: NonNull<Cpumask>,
--
2.43.0
Powered by blists - more mailing lists