| From: Baptiste Lepers <baptiste.lepers@gmail.com> |
| Subject: rust: mm: mark VmaNew as transparent |
| Date: Tue, 12 Aug 2025 15:26:56 +0200 |
| |
| 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> |
| --- |
| |
| rust/kernel/mm/virt.rs | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/rust/kernel/mm/virt.rs~rust-mm-mark-vmanew-as-transparent |
| +++ a/rust/kernel/mm/virt.rs |
| @@ -209,6 +209,7 @@ impl VmaMixedMap { |
| /// |
| /// 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, |
| } |
| _ |