From: ard.biesheuvel@linaro.org (Ard Biesheuvel) To: linux-arm-kernel@lists.infradead.org Subject: [RFC PATCH 06/10] arm64: kbuild: reserve reg x18 from general allocation by the compiler Date: Wed, 12 Jul 2017 15:44:19 +0100 [thread overview] Message-ID: <20170712144424.19528-7-ard.biesheuvel@linaro.org> (raw) In-Reply-To: <20170712144424.19528-1-ard.biesheuvel@linaro.org> Before we can start using register x18 for a special purpose (as permitted by the AAPCS64 ABI), we need to tell the compiler that it is off limits for general allocation. So tag it as 'fixed', and remove the mention from the LL/SC compiler flag override. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- arch/arm64/Makefile | 2 +- arch/arm64/lib/Makefile | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 9b41f1e3b1a0..68164338185a 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -46,7 +46,7 @@ $(warning Detected assembler with broken .inst; disassembly will be unreliable) endif KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) -KBUILD_CFLAGS += -fno-asynchronous-unwind-tables +KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -ffixed-x18 KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) diff --git a/arch/arm64/lib/Makefile b/arch/arm64/lib/Makefile index c86b7909ef31..b52f34fd5ba5 100644 --- a/arch/arm64/lib/Makefile +++ b/arch/arm64/lib/Makefile @@ -15,5 +15,4 @@ CFLAGS_atomic_ll_sc.o := -fcall-used-x0 -ffixed-x1 -ffixed-x2 \ -ffixed-x3 -ffixed-x4 -ffixed-x5 -ffixed-x6 \ -ffixed-x7 -fcall-saved-x8 -fcall-saved-x9 \ -fcall-saved-x10 -fcall-saved-x11 -fcall-saved-x12 \ - -fcall-saved-x13 -fcall-saved-x14 -fcall-saved-x15 \ - -fcall-saved-x18 + -fcall-saved-x13 -fcall-saved-x14 -fcall-saved-x15 -- 2.9.3
WARNING: multiple messages have this Message-ID (diff)
From: Ard Biesheuvel <ard.biesheuvel@linaro.org> To: linux-arm-kernel@lists.infradead.org, kernel-hardening@lists.openwall.com Cc: mark.rutland@arm.com, labbott@fedoraproject.org, will.deacon@arm.com, dave.martin@arm.com, catalin.marinas@arm.com, Ard Biesheuvel <ard.biesheuvel@linaro.org> Subject: [kernel-hardening] [RFC PATCH 06/10] arm64: kbuild: reserve reg x18 from general allocation by the compiler Date: Wed, 12 Jul 2017 15:44:19 +0100 [thread overview] Message-ID: <20170712144424.19528-7-ard.biesheuvel@linaro.org> (raw) In-Reply-To: <20170712144424.19528-1-ard.biesheuvel@linaro.org> Before we can start using register x18 for a special purpose (as permitted by the AAPCS64 ABI), we need to tell the compiler that it is off limits for general allocation. So tag it as 'fixed', and remove the mention from the LL/SC compiler flag override. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- arch/arm64/Makefile | 2 +- arch/arm64/lib/Makefile | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 9b41f1e3b1a0..68164338185a 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -46,7 +46,7 @@ $(warning Detected assembler with broken .inst; disassembly will be unreliable) endif KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) -KBUILD_CFLAGS += -fno-asynchronous-unwind-tables +KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -ffixed-x18 KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) diff --git a/arch/arm64/lib/Makefile b/arch/arm64/lib/Makefile index c86b7909ef31..b52f34fd5ba5 100644 --- a/arch/arm64/lib/Makefile +++ b/arch/arm64/lib/Makefile @@ -15,5 +15,4 @@ CFLAGS_atomic_ll_sc.o := -fcall-used-x0 -ffixed-x1 -ffixed-x2 \ -ffixed-x3 -ffixed-x4 -ffixed-x5 -ffixed-x6 \ -ffixed-x7 -fcall-saved-x8 -fcall-saved-x9 \ -fcall-saved-x10 -fcall-saved-x11 -fcall-saved-x12 \ - -fcall-saved-x13 -fcall-saved-x14 -fcall-saved-x15 \ - -fcall-saved-x18 + -fcall-saved-x13 -fcall-saved-x14 -fcall-saved-x15 -- 2.9.3
next prev parent reply other threads:[~2017-07-12 14:44 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-07-12 14:44 [RFC PATCH 00/10] arm64: allow virtually mapped stacks to be enabled Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 14:44 ` [RFC PATCH 01/10] arm64/lib: copy_page: use consistent prefetch stride Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 14:44 ` [RFC PATCH 02/10] arm64/lib: copy_page: avoid x18 register in assembler code Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 14:44 ` [RFC PATCH 03/10] arm64: crypto: avoid register x18 in scalar AES code Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 14:44 ` [RFC PATCH 04/10] arm64: kvm: stop treating register x18 as caller save Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 14:44 ` [RFC PATCH 05/10] arm64: kernel: avoid x18 as an arbitrary temp register Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 14:44 ` Ard Biesheuvel [this message] 2017-07-12 14:44 ` [kernel-hardening] [RFC PATCH 06/10] arm64: kbuild: reserve reg x18 from general allocation by the compiler Ard Biesheuvel 2017-07-12 14:44 ` [RFC PATCH 07/10] arm64: kernel: switch to register x18 as a task struct pointer Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-13 10:41 ` Dave Martin 2017-07-13 10:41 ` [kernel-hardening] " Dave Martin 2017-07-13 12:27 ` Ard Biesheuvel 2017-07-13 12:27 ` [kernel-hardening] " Ard Biesheuvel 2017-07-13 14:11 ` Dave Martin 2017-07-13 14:11 ` [kernel-hardening] " Dave Martin 2017-07-12 14:44 ` [RFC PATCH 08/10] arm64/kernel: dump entire stack if sp points elsewhere Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 14:44 ` [RFC PATCH 09/10] arm64: mm: add C level handling for stack overflows Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 14:44 ` [RFC PATCH 10/10] arm64: kernel: add support for virtually mapped stacks Ard Biesheuvel 2017-07-12 14:44 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 22:59 ` Mark Rutland 2017-07-12 22:59 ` [kernel-hardening] " Mark Rutland 2017-07-13 9:12 ` Mark Rutland 2017-07-13 9:12 ` Mark Rutland 2017-07-13 10:35 ` Dave Martin 2017-07-13 10:35 ` [kernel-hardening] " Dave Martin 2017-07-12 20:12 ` [RFC PATCH 00/10] arm64: allow virtually mapped stacks to be enabled Laura Abbott 2017-07-12 20:12 ` [kernel-hardening] " Laura Abbott 2017-07-12 20:49 ` Ard Biesheuvel 2017-07-12 20:49 ` [kernel-hardening] " Ard Biesheuvel 2017-07-12 21:32 ` Andy Lutomirski 2017-07-12 21:32 ` [kernel-hardening] " Andy Lutomirski 2017-07-12 22:47 ` Mark Rutland 2017-07-12 22:47 ` [kernel-hardening] " Mark Rutland 2017-07-13 6:51 ` Ard Biesheuvel 2017-07-13 6:51 ` [kernel-hardening] " Ard Biesheuvel
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170712144424.19528-7-ard.biesheuvel@linaro.org \ --to=ard.biesheuvel@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.