Re: [uaccess] 780464aed0: WARNING:at_arch/x86/include/asm/uaccess.h:#strnlen_user/0x

From: Linus Torvalds
Date: Sun Mar 03 2019 - 21:38:22 EST


On Sun, Mar 3, 2019 at 5:14 PM Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
>
> I think it comes from WARN_ON_ONCE(!segment_eq(get_fs(), USER_DS)) in
> user_access_ok(). The call trace shows that strndup_user might be called
> from kernel daemon context.

Ahh, yes.

We've had this before. We've gotten rid of the actual "use system
calls", but we still have some of the init sequence in particular just
calling the wrappers instead.

And yes, ksys_mount() takes __user pointers.

It would be a lot better to use "do_mount()", which is the interface
that takes actual "char *" pointers.

Linus