diff -ur /md0/kernels/2.4/v2.4.8-ac3/mm/memory.c vm-2.4.8-ac3/mm/memory.c --- /md0/kernels/2.4/v2.4.8-ac3/mm/memory.c Mon Aug 13 15:12:54 2001 +++ vm-2.4.8-ac3/mm/memory.c Mon Aug 13 15:21:00 2001 @@ -452,7 +452,7 @@ if (err) return err; - down_write(&mm->mmap_sem); + down_read(&mm->mmap_sem); err = -EFAULT; iobuf->locked = 0; @@ -510,12 +510,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;