summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 17:50:30 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 17:50:30 -0800
commit43e9282d088b07f03fc16a5325ff74cf49fb2990 (patch)
treebf54a000466ab5e020f4cfd7b6836ab64e0d23a3 /kernel
parent7a2deb32924142696b8174cdf9b38cd72a11fc96 (diff)
v2.4.0 -> v2.4.0.1
- Don't drop a megabyte off the old-style memory size detection - remember to UnlockPage() in ramfs_writepage() - 3c59x driver update from Andrew Morton - egcs-1.1.2 miscompiles depca: workaround by Andrew Morton - dmfe.c module init fix: Andrew Morton - dynamic XMM support. Andrea Arkangeli. - Locked SHM segment deadlock fix - fork() page table copy race fix
Diffstat (limited to 'kernel')
-rw-r--r--kernel/fork.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 99c1f2317992..f58c2a87fe56 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -193,6 +193,7 @@ fail_nomem:
}
spinlock_t mmlist_lock __cacheline_aligned = SPIN_LOCK_UNLOCKED;
+int mmlist_nr;
#define allocate_mm() (kmem_cache_alloc(mm_cachep, SLAB_KERNEL))
#define free_mm(mm) (kmem_cache_free(mm_cachep, (mm)))
@@ -246,6 +247,7 @@ void mmput(struct mm_struct *mm)
{
if (atomic_dec_and_lock(&mm->mm_users, &mmlist_lock)) {
list_del(&mm->mmlist);
+ mmlist_nr--;
spin_unlock(&mmlist_lock);
exit_mmap(mm);
mmdrop(mm);
@@ -326,6 +328,7 @@ static int copy_mm(unsigned long clone_flags, struct task_struct * tsk)
*/
spin_lock(&mmlist_lock);
list_add(&mm->mmlist, &oldmm->mmlist);
+ mmlist_nr++;
spin_unlock(&mmlist_lock);
if (retval)