ARM: kernel/userspace address separation

This creates an option to unmap the kernel dynamically allocated
memory (anything from kmalloc*) when executing in userspace. The
kernelspace TEXT, DATA and BSS will still be available.

This requires ARM_KERNEL_IN_VMALLOC so the kernel code and data
will be at 0xf1000000.

FIXME: an exception can occur when the kernel is executing but
has switched in the userspace TTBR0 mapping, and then the
exception will restore the wrong TTBR0 when it exits!

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
9 files changed