diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 17:50:30 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 17:50:30 -0800 |
| commit | 43e9282d088b07f03fc16a5325ff74cf49fb2990 (patch) | |
| tree | bf54a000466ab5e020f4cfd7b6836ab64e0d23a3 /kernel | |
| parent | 7a2deb32924142696b8174cdf9b38cd72a11fc96 (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.c | 3 |
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) |
