CVSROOT: /cvs Module name: src Changes by: kette...@cvs.openbsd.org 2018/01/10 16:27:18
Modified files: sys/arch/arm64/arm64: cpufunc_asm.S exception.S machdep.c pmap.c sys/arch/arm64/conf: files.arm64 sys/arch/arm64/dev: efi.c sys/arch/arm64/include: cpufunc.h Added files: sys/arch/arm64/arm64: trampoline.S Log message: Implement FUCKWIT for arm64; unmap the kernel almost entirely while userland is running. This provides protection against meltown on cores that are vilnerable (just Cortex-A75 so far) but also seems to be an essential to protect against spectre-like attacks against the kernel. This implementation only exposes a single treampoline page that does not contain any kernel virtual addresses and also hides the real virtual address of the exception vectors, which helps on cores vulnerable to "variant 3a" (Cortex-A57, Cortex-A72). The implementation is inspired by the work done by Will Deacon for Linux, but there are no knobs to turn it off. The overhead is fairly limited: around 3-4% slowdown on Cortex-A57. ok patrick@, deraadt@