Message ID | 20191206221351.38241-10-samitolvanen@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v6,01/15] arm64: mm: avoid x18 in idmap_kpti_install_ng_mappings | expand |
On Fri, Dec 06, 2019 at 02:13:45PM -0800, Sami Tolvanen wrote: > Reserve the x18 register from general allocation when SCS is enabled, > because the compiler uses the register to store the current task's > shadow stack pointer. Note that all external kernel modules must also be > compiled with -ffixed-x18 if the kernel has SCS enabled. > > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > Reviewed-by: Kees Cook <keescook@chromium.org> > --- > arch/arm64/Makefile | 4 ++++ > 1 file changed, 4 insertions(+) Acked-by: Will Deacon <will@kernel.org> Will
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 1fbe24d4fdb6..e69736fc1106 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -72,6 +72,10 @@ stack_protector_prepare: prepare0 include/generated/asm-offsets.h)) endif +ifeq ($(CONFIG_SHADOW_CALL_STACK), y) +KBUILD_CFLAGS += -ffixed-x18 +endif + ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) KBUILD_CPPFLAGS += -mbig-endian CHECKFLAGS += -D__AARCH64EB__