Messages in this thread | | | Date | Tue, 21 Dec 1999 08:53:44 +0000 (GMT) | From | Tigran Aivazian <> | Subject | Re: [q] fundamental thing I am still missing about put_user(). |
| |
having thought of it for a minute, it is probably not the best design though.
I am going to try to change vread() interface to accept kernel addresses and make temporary kernel buffers in read_kmem() and see what happens.
Btw, Stephen mentioned kmapping user addresses but I still have not seen any working examples of that - the stuff in mm/filemap.c only deals with a page at a time...
Regards, Tigran.
On Tue, 21 Dec 1999, Tigran Aivazian wrote:
> Hi, > > I have a question about writing to userspace buffers. Can I do this in > read_kmem() (read method of /dev/kmem): > > if (verify_area(VERIFY_WRITE, buf, count)) > return -EFAULT; > > lock_kernel(); > write to user buf without any worries, even taking spinlocks if needed. > unlock_kernel(); > > If I can do this then it is very useful because we could then hold a > spinlock in mm/vmalloc.c:vread() which means vmlist can be protected by a > simple spinlock which means vmalloc()/vfree()/ioremap() (i.e. really > vfree() and get_vm_area()) can be made SMP safe, i.e. without forcing > callers to have lock/unlock_kernel(). > > Thank you for your patient explanation :) > ------ > Tigran A. Aivazian | http://www.sco.com > Escalations Research Group | tel: +44-(0)1923-813796 > Santa Cruz Operation Ltd | http://www.ocston.org/~tigran > > >
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |