Re: [PATCH v10 2/8] mm: rust: add vm_area_struct methods that require read access
From: Alice Ryhl
Date: Thu Dec 05 2024 - 05:42:44 EST
On Fri, Nov 29, 2024 at 5:32 PM Alice Ryhl <aliceryhl@xxxxxxxxxx> wrote:
>
> This adds a type called VmAreaRef which is used when referencing a vma
> that you have read access to. Here, read access means that you hold
> either the mmap read lock or the vma read lock (or stronger).
>
> Additionally, a vma_lookup method is added to the mmap read guard, which
> enables you to obtain a &VmAreaRef in safe Rust code.
>
> This patch only provides a way to lock the mmap read lock, but a
> follow-up patch also provides a way to just lock the vma read lock.
>
> Acked-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx> (for mm bits)
> Reviewed-by: Jann Horn <jannh@xxxxxxxxxx>
> Signed-off-by: Alice Ryhl <aliceryhl@xxxxxxxxxx>
It looks like binder needs a way to check whether a given vma is
associated with a given mm. I guess we can do that by adding a method
to VmAreaRef that returns a &MmWithUser.
This indicates that vma->vm_mm references an mm with non-zero mm_users
whenever it's legal to have a reference to the vma.
Alice