Regards,
------
Tigran A. Aivazian | http://www.sco.com
Escalations Research Group | tel: +44-(0)1923-813796
Santa Cruz Operation Ltd | http://www.ocston.org/~tigran
On Tue, 21 Dec 1999, Tigran Aivazian wrote:
> forget about my original question - having thought a bit more I
> restructure my question thus:
>
> Given a user virtual address and a count I need to be able to get at each
> struct page * page that covers it. Then I can kmap() each page in a loop
> and generate very safe range (i.e. use __copy_to_user()) inside vread()),
> just like file_read_actor() does when called from do_generic_file_read().
>
> So I need something like uvirt_to_page() macro.
>
> Regards,
> ------
> Tigran A. Aivazian | http://www.sco.com
> Escalations Research Group | tel: +44-(0)1923-813796
> Santa Cruz Operation Ltd | http://www.ocston.org/~tigran
>
> On Tue, 21 Dec 1999, Tigran Aivazian wrote:
>
> > 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/