--- linux/ipc/shm.c.~1~ Thu Feb 28 14:43:42 2002 +++ linux/ipc/shm.c Fri Mar 1 16:31:07 2002 @@ -679,9 +679,10 @@ for (shmd = mm->mmap; shmd; shmd = shmdnext) { shmdnext = shmd->vm_next; if (shmd->vm_ops == &shm_vm_ops - && shmd->vm_start - (shmd->vm_pgoff << PAGE_SHIFT) == (ulong) shmaddr) + && shmd->vm_start - (shmd->vm_pgoff << PAGE_SHIFT) == (ulong) shmaddr) { do_munmap(mm, shmd->vm_start, shmd->vm_end - shmd->vm_start); retval = 0; + } } up_write(&mm->mmap_sem); return retval;