properly support exec and wait with kernel pointers

Christoph Hellwig
2020-06-15T13:00:49Z

Hi all,

this series first cleans up the exec code and then adds proper
kernel_execveat and kernel_wait callers instead of relying on the fact
that the early init code and kernel threads implicitly run with
the address limit set to KERNEL_DS.

Note that the cleanup removes the compat execve(at) handlers (almost)
entirely, as we can handle the compat difference very nicely in a
unified codebase. The only exception is x86 where this would list the
handlers twice in the same syscall table due to the messed up x32
design. I had to add an extra compat handler just for that case, but
maybe someone has a better idea.