]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sched/mm and kernel/fork: Add maple tree rcu enable/disable
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Fri, 28 Aug 2020 19:32:05 +0000 (15:32 -0400)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Fri, 30 Oct 2020 19:09:32 +0000 (15:09 -0400)
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
include/linux/sched/mm.h
kernel/fork.c

index d5ece7a9a403fd732e41a5b8d44d76ce14a62be2..919e2e44b764ed4d9aeb488306a53c0395106817 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/mm_types.h>
 #include <linux/gfp.h>
 #include <linux/sync_core.h>
+#include <linux/maple_tree.h>
 
 /*
  * Routines for handling mm_structs
@@ -67,11 +68,13 @@ static inline void mmdrop(struct mm_struct *mm)
  */
 static inline void mmget(struct mm_struct *mm)
 {
+       mt_set_in_rcu(&mm->mm_mt);
        atomic_inc(&mm->mm_users);
 }
 
 static inline bool mmget_not_zero(struct mm_struct *mm)
 {
+       mt_set_in_rcu(&mm->mm_mt);
        return atomic_inc_not_zero(&mm->mm_users);
 }
 
index 8fd147e1e7e73fb6259757e454226afc5769df2e..4811feef06b324a627774695752fca7334500273 100644 (file)
@@ -1095,6 +1095,7 @@ static inline void __mmput(struct mm_struct *mm)
        }
        if (mm->binfmt)
                module_put(mm->binfmt->module);
+       mt_clear_in_rcu(&mm->mm_mt);
        mmdrop(mm);
 }