lkml.org 
[lkml]   [2019]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v4 12/17] arm64: reserve x18 from general allocation with SCS
    From
    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(+)

    diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
    index 2c0238ce0551..ef76101201b2 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__
    --
    2.24.0.rc1.363.gb1bccd3e3d-goog
    \
     
     \ /
      Last update: 2019-11-01 23:13    [W:4.073 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site