Messages in this thread | | | From | Arnd Bergmann <> | Date | Mon, 8 Jun 2020 16:43:57 +0200 | Subject | Re: ARM: vmsplit 4g/4g |
| |
On Mon, Jun 8, 2020 at 1:18 PM afzal mohammed <afzal.mohd.ma@gmail.com> wrote: > On Sun, Jun 07, 2020 at 09:26:26PM +0200, Arnd Bergmann wrote: > > > I think you have to use get_user_pages() though instead of > > get_user_pages_fast(), > > in order to be able to check the permission bits to prevent doing a > > copy_to_user() > > into read-only mappings. > > i was not aware of this, is it documented somewhere ?, afaiu, > difference b/n get_user_pages_fast() & get_user_pages() is that fast > version will try to pin pages w/o acquiring mmap_sem if possible.
There is another difference: get_user_pages_fast() does not return a vm_area_struct pointer, which is where you would check the access permissions. I suppose those pointers could not be returned to callers that don't already hold the mmap_sem.
> > Do you want me to review the uaccess patch to look for any missing > > corner cases, or do you want to do the whole set of user access helpers > > first? > > i will cleanup and probably post RFC initially for the changes > handling copy_{from,to}_user() to get feedback.
Ok.
Arnd
| |