From: Oleg Nesterov oleg@redhat.com Date: Tue, 15 Apr 2014 19:43:30 +0200
Finally, let me repeat, you should verify that this __copy_to_user_page(page, uaddr, kaddr) will not something bad if uaddr is not mmapped, or its mapping do not match area->page.
Just directly access userspace with the usual exception mechanism we use for copy_to_user(), put_user(), et al. and if it faults you'll get -EFAULT and handle it.
This also avoids the D-cache aliasing issues entirely as I explained in my other reply.