|
@@ -785,6 +785,13 @@ static void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void mm_init_uprobes_state(struct mm_struct *mm)
|
|
|
|
+{
|
|
|
|
+#ifdef CONFIG_UPROBES
|
|
|
|
+ mm->uprobes_state.xol_area = NULL;
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
+
|
|
static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p,
|
|
static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p,
|
|
struct user_namespace *user_ns)
|
|
struct user_namespace *user_ns)
|
|
{
|
|
{
|
|
@@ -812,6 +819,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p,
|
|
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
|
|
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
|
|
mm->pmd_huge_pte = NULL;
|
|
mm->pmd_huge_pte = NULL;
|
|
#endif
|
|
#endif
|
|
|
|
+ mm_init_uprobes_state(mm);
|
|
|
|
|
|
if (current->mm) {
|
|
if (current->mm) {
|
|
mm->flags = current->mm->flags & MMF_INIT_MASK;
|
|
mm->flags = current->mm->flags & MMF_INIT_MASK;
|