On Thu, Nov 03, 2022 at 04:03:43PM -0400, Mathieu Desnoyers wrote: > diff --git a/fs/exec.c b/fs/exec.c > index 349a5da91efe..93eb88f4053b 100644 > --- a/fs/exec.c > +++ b/fs/exec.c > @@ -1013,6 +1013,9 @@ static int exec_mmap(struct mm_struct *mm) > tsk->active_mm = mm; > tsk->mm = mm; > lru_gen_add_mm(mm); > + mm_init_vcpu_lock(mm); > + mm_init_vcpumask(mm); > + mm_init_node_vcpumask(mm); > /* > * This prevents preemption while active_mm is being loaded and > * it and mm are being updated, which could cause problems for > @@ -1150,6 +1154,9 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, > > mm->user_ns = get_user_ns(user_ns); > lru_gen_init_mm(mm); > + mm_init_vcpu_lock(mm); > + mm_init_vcpumask(mm); > + mm_init_node_vcpumask(mm); > return mm; > > fail_nocontext: Why isn't all that a single mm_init_vcpu(mm) or something ?