> How do you end up with Device nGnRnE in user space? I thought we should
> have got some guard page.
I guess it is a device file that is mmaped in the user space and later remapped 
in the kernel
 using pgprot_noncached(). 
I can't find the code that inserts a guard page in between vma's can you please 
help me find that code?

> do_strncpy_from_user() relies on unsafe_get_user() not being able to
> read 8 bytes. The problem now is that it doesn't get a page fault but an
> alignment one is isn't handled.
Yes.

> Why addr >= TASK_SIZE? addr here should be the fault address, not pc.
You're right. I should have used user_mode(regs).

> The simplest would be to use do_bad_area() here without any additional
> function.
Yes, I should've probably used do_bad_area(). I just wanted to do the minimal 
stuff.

Reply via email to