--- 2.4.7pre3aa1/mm/memory.c.~1~ Fri Jul 6 18:39:31 2001 +++ 2.4.7pre3aa1/mm/memory.c Fri Jul 6 18:56:42 2001 @@ -460,7 +460,7 @@ if (err) return err; - down_write(&mm->mmap_sem); + down_read(&mm->mmap_sem); err = -EFAULT; iobuf->locked = 0; @@ -519,12 +519,12 @@ ptr += PAGE_SIZE; } - up_write(&mm->mmap_sem); + up_read(&mm->mmap_sem); dprintk ("map_user_kiobuf: end OK\n"); return 0; out_unlock: - up_write(&mm->mmap_sem); + up_read(&mm->mmap_sem); unmap_kiobuf(iobuf); dprintk ("map_user_kiobuf: end %d\n", err); return err;