passing __user function parameter from kernel_module result in EFAULT

Greg KH greg at
Sat Apr 25 03:43:42 EDT 2020

On Tue, Apr 21, 2020 at 09:14:00PM +0300, Lev R. Oshvang . wrote:
> Hi all, I am trying to do a mount from kernel module in kernel 5.4 on x86_64.
> It fails with -14,  I tried to set_fs(USER_DS) before calling do_mount
> but it did not
>  help.
> do_mount() returns -EFAUTL when it checks filename validity just at
> the very first lines of do_mount ().
> Are there other tricks to do in order to overcome and access_ok checks?

No "trick" is needed, just properly convert the data to a kernel pointer
and you should be fine.  Never touch the data pointed to by a userspace

greg k-h

More information about the Kernelnewbies mailing list