On Fri, Nov 22, 2024 at 04:53:58PM +0100, Alice Ryhl wrote: > On Fri, Nov 22, 2024 at 4:41 PM Alice Ryhl <aliceryhl@xxxxxxxxxx> wrote: > > > > Introduce a new type called `CurrentTask` that lets you perform various > > operations that are only safe on the `current` task. Use the new type to > > provide a way to access the current mm without incrementing its > > refcount. > > > > With this change, you can write stuff such as > > > > let vma = current!().mm().lock_vma_under_rcu(addr); > > > > without incrementing any refcounts. > > > > Signed-off-by: Alice Ryhl <aliceryhl@xxxxxxxxxx> > > Oh, that's awkward, I was testing this change using a config file that > was missing CONFIG_RUST=y, so it didn't compile the code at all. You > need the following imports for this to work: > > diff --git a/rust/kernel/task.rs b/rust/kernel/task.rs > index 103d235eb844..60659076997a 100644 > --- a/rust/kernel/task.rs > +++ b/rust/kernel/task.rs > @@ -7,7 +7,8 @@ > use crate::{ > bindings, > ffi::{c_int, c_long, c_uint}, > - types::{NotThreadSafe, Opaque}, > + mm::MmWithUser, > + types::Opaque, > }; > use core::{ > cmp::{Eq, PartialEq}, > > Otherwise the code should be correct. You can fetch the tree with this fixed at: > https://github.com/Darksonn/linux/commits/b4/vma/ > > I'll fix it in the next version, but I will wait for review before I send that. Sure, no problem, we can just make this a predicate for the ack. > > Alice