On Mon, Jun 8, 2020 at 1:18 PM afzal mohammed <afzal.mohd...@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