--- 2.2.17pre9/arch/ppc/kernel/syscalls.c Wed Jun 28 17:13:00 2000 +++ /tmp/syscalls.c Mon Jul 3 03:57:36 2000 @@ -199,6 +199,7 @@ struct file * file = NULL; int ret = -EBADF; + down(¤t->mm->mmap_sem); lock_kernel(); if (!(flags & MAP_ANONYMOUS)) { if (fd >= NR_OPEN || !(file = current->files->fd[fd])) @@ -209,6 +210,7 @@ ret = do_mmap(file, addr, len, prot, flags, offset); out: unlock_kernel(); + up(¤t->mm->mmap_sem); return ret; }