On Sat, Feb 23, 2019 at 8:38 PM Andy Lutomirski luto@kernel.org wrote:
On Sat, Feb 23, 2019 at 4:44 PM Steven Rostedt rostedt@goodmis.org wrote:
On Sat, 23 Feb 2019 12:47:46 +0900 Masami Hiramatsu mhiramat@kernel.org wrote:
Since kprobes handler runs in IRQ context, we can not use access_ok() in it. (only on x86 + CONFIG_DEBUG_ATOMIC_SLEEP=y)
Is it really IRQ context or exception context? That is, one (interrupts) happen for any task, but exceptions happen because of the software that is executed (like a breakpoint). Although you can have a kprobe trigger in an interrupt handler (where user access wouldn't make sense anyway). But there should be no problem with user access from an exception handler.
Can we just get rid of this might_sleep()? access_ok() doesn't sleep as far as I know.
We do need to be aware of the userfaultfd case of getting held by userspace in the middle of a copy_*_user()... that's a whole other problem.