Merge tag 'nios2-v3.20-rc1' of git://git.rocketboards.org/linux-socfpga-next
[sfrench/cifs-2.6.git] / kernel / fork.c
index 4dc2ddade9f1f288aaa08d8a665f1fded2ba88cc..cf65139615a0d38e3fef37ee3a6e2e270c01ccaf 100644 (file)
@@ -438,12 +438,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
                                atomic_inc(&mapping->i_mmap_writable);
                        flush_dcache_mmap_lock(mapping);
                        /* insert tmp into the share list, just after mpnt */
-                       if (unlikely(tmp->vm_flags & VM_NONLINEAR))
-                               vma_nonlinear_insert(tmp,
-                                               &mapping->i_mmap_nonlinear);
-                       else
-                               vma_interval_tree_insert_after(tmp, mpnt,
-                                                       &mapping->i_mmap);
+                       vma_interval_tree_insert_after(tmp, mpnt,
+                                       &mapping->i_mmap);
                        flush_dcache_mmap_unlock(mapping);
                        i_mmap_unlock_write(mapping);
                }
@@ -559,6 +555,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p)
        INIT_LIST_HEAD(&mm->mmlist);
        mm->core_state = NULL;
        atomic_long_set(&mm->nr_ptes, 0);
+       mm_nr_pmds_init(mm);
        mm->map_count = 0;
        mm->locked_vm = 0;
        mm->pinned_vm = 0;
@@ -607,6 +604,14 @@ static void check_mm(struct mm_struct *mm)
                        printk(KERN_ALERT "BUG: Bad rss-counter state "
                                          "mm:%p idx:%d val:%ld\n", mm, i, x);
        }
+
+       if (atomic_long_read(&mm->nr_ptes))
+               pr_alert("BUG: non-zero nr_ptes on freeing mm: %ld\n",
+                               atomic_long_read(&mm->nr_ptes));
+       if (mm_nr_pmds(mm))
+               pr_alert("BUG: non-zero nr_pmds on freeing mm: %ld\n",
+                               mm_nr_pmds(mm));
+
 #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
        VM_BUG_ON_MM(mm->pmd_huge_pte, mm);
 #endif