6.16-stable review patch. If anyone has any objections, please let me know.
------------------
From: Baptiste Lepers baptiste.lepers@gmail.com
commit 5cc5e030bce2ec97ae5cdb2c1b94a98b1047b3fa upstream.
Unsafe code in VmaNew's methods assumes that the type has the same layout as the inner `bindings::vm_area_struct`. This is not guaranteed by the default struct representation in Rust, but requires specifying the `transparent` representation.
Link: https://lkml.kernel.org/r/20250812132712.61007-1-baptiste.lepers@gmail.com Fixes: dcb81aeab406 ("mm: rust: add VmaNew for f_ops->mmap()") Signed-off-by: Baptiste Lepers baptiste.lepers@gmail.com Reviewed-by: Alice Ryhl aliceryhl@google.com Cc: Alex Gaynor alex.gaynor@gmail.com Cc: Andreas Hindborg a.hindborg@kernel.org Cc: Björn Roy Baron bjorn3_gh@protonmail.com Cc: Boqun Feng boqun.feng@gmail.com Cc: Danilo Krummrich dakr@kernel.org Cc: Gary Guo gary@garyguo.net Cc: Jann Horn jannh@google.com Cc: Liam Howlett liam.howlett@oracle.com Cc: Lorenzo Stoakes lorenzo.stoakes@oracle.com Cc: Miguel Ojeda ojeda@kernel.org Cc: Trevor Gross tmgross@umich.edu Cc: stable@vger.kernel.org Signed-off-by: Andrew Morton akpm@linux-foundation.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- rust/kernel/mm/virt.rs | 1 + 1 file changed, 1 insertion(+)
diff --git a/rust/kernel/mm/virt.rs b/rust/kernel/mm/virt.rs index 6086ca981b06..a1bfa4e19293 100644 --- a/rust/kernel/mm/virt.rs +++ b/rust/kernel/mm/virt.rs @@ -209,6 +209,7 @@ pub fn vm_insert_page(&self, address: usize, page: &Page) -> Result { /// /// For the duration of 'a, the referenced vma must be undergoing initialization in an /// `f_ops->mmap()` hook. +#[repr(transparent)] pub struct VmaNew { vma: VmaRef, }