From: Mark Brown <broonie@kernel.org>
To: Vincenzo Frascino <Vincenzo.Frascino@arm.com>,
Will Deacon <will@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>
Cc: Kees Cook <keescook@chromium.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Jean-Philippe Brucker <jean-philippe.brucker@arm.com>,
Mark Brown <broonie@kernel.org>,
Amit Kachhap <amit.kachhap@arm.com>,
Dave Martin <Dave.Martin@arm.com>,
linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 00/11] arm64: BTI kernel and vDSO support
Date: Wed, 6 May 2020 20:51:27 +0100 [thread overview]
Message-ID: <20200506195138.22086-1-broonie@kernel.org> (raw)
This patch series adds support for protecting the kernel and vDSO with
BTI including code compiled with the BPF JIT at runtime.
We build the kernel with annotations for BTI and then map the kernel
with GP based on the support on the boot CPU, rejecting secondaries that
don't have BTI support. If there is a need to handle big.LITTLE systems
with mismatched BTI support we will have to revisit this, currently no
such implementations exist.
This series depends on several branches in the arm64 tree:
- for-next/bti-user
- for-next/insn
- for-next/asm
v3:
- Add a patch adding a comment about why we enable leaf support for
PAC.
- Fix build of the 32 bit vDSO.
- Refactor the macro for emitting the ELF note for BTI code so that
the flags are defined separately in order to make it easier to
add handling for any future users.
v2:
- Enable support for building with GCC version 10 and later, a fix
for BTI code generation is being backported to GCC 9 but is not yet
available.
- Add BPF support.
- Remove some unused page attribute defines.
- One assembler modernisation patch has been removed and sent
separately.
Mark Brown (11):
arm64: Document why we enable PAC support for leaf functions
arm64: bti: Support building kernel C code using BTI
arm64: asm: Override SYM_FUNC_START when building the kernel with BTI
arm64: Set GP bit in kernel page tables to enable BTI for the kernel
arm64: bpf: Annotate JITed code for BTI
arm64: mm: Mark executable text as guarded pages
arm64: bti: Provide Kconfig for kernel mode BTI
arm64: asm: Provide a mechanism for generating ELF note for BTI
arm64: vdso: Annotate for BTI
arm64: vdso: Force the vDSO to be linked as BTI when built for BTI
arm64: vdso: Map the vDSO text with guarded pages when built for BTI
arch/arm64/Kconfig | 18 ++++++++++
arch/arm64/Makefile | 7 ++++
arch/arm64/include/asm/assembler.h | 50 +++++++++++++++++++++++++++
arch/arm64/include/asm/linkage.h | 46 ++++++++++++++++++++++++
arch/arm64/include/asm/pgtable-prot.h | 3 ++
arch/arm64/kernel/cpufeature.c | 4 +++
arch/arm64/kernel/vdso.c | 6 +++-
arch/arm64/kernel/vdso/Makefile | 4 ++-
arch/arm64/kernel/vdso/note.S | 3 ++
arch/arm64/kernel/vdso/sigreturn.S | 3 ++
arch/arm64/kernel/vdso/vdso.S | 3 ++
arch/arm64/mm/mmu.c | 24 +++++++++++++
arch/arm64/mm/pageattr.c | 4 +--
arch/arm64/net/bpf_jit.h | 8 +++++
arch/arm64/net/bpf_jit_comp.c | 12 +++++++
15 files changed, 191 insertions(+), 4 deletions(-)
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2020-05-06 19:51 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-06 19:51 Mark Brown [this message]
2020-05-06 19:51 ` [PATCH v3 01/11] arm64: Document why we enable PAC support for leaf functions Mark Brown
2020-05-06 19:51 ` [PATCH v3 02/11] arm64: bti: Support building kernel C code using BTI Mark Brown
2020-05-06 19:51 ` [PATCH v3 03/11] arm64: asm: Override SYM_FUNC_START when building the kernel with BTI Mark Brown
2020-05-06 19:51 ` [PATCH v3 04/11] arm64: Set GP bit in kernel page tables to enable BTI for the kernel Mark Brown
2020-05-06 19:51 ` [PATCH v3 05/11] arm64: bpf: Annotate JITed code for BTI Mark Brown
2020-05-07 20:15 ` Daniel Borkmann
2020-05-07 20:15 ` Daniel Borkmann
2020-05-06 19:51 ` [PATCH v3 06/11] arm64: mm: Mark executable text as guarded pages Mark Brown
2020-05-06 19:51 ` [PATCH v3 07/11] arm64: bti: Provide Kconfig for kernel mode BTI Mark Brown
2020-05-06 19:51 ` [PATCH v3 08/11] arm64: asm: Provide a mechanism for generating ELF note for BTI Mark Brown
2020-05-06 19:51 ` [PATCH v3 09/11] arm64: vdso: Annotate " Mark Brown
2020-05-06 19:51 ` [PATCH v3 10/11] arm64: vdso: Force the vDSO to be linked as BTI when built " Mark Brown
2020-05-06 19:51 ` [PATCH v3 11/11] arm64: vdso: Map the vDSO text with guarded pages " Mark Brown
2020-05-07 14:33 ` [PATCH v3 00/11] arm64: BTI kernel and vDSO support Will Deacon
2020-05-07 14:35 ` Will Deacon
2020-05-07 14:59 ` Will Deacon
2020-05-07 15:09 ` Mark Brown
2020-05-07 15:18 ` Will Deacon
2020-05-07 15:48 ` Mark Brown
2020-05-07 15:55 ` Will Deacon
2020-05-07 16:30 ` Mark Brown
2020-05-07 16:36 ` Will Deacon
2020-05-07 16:47 ` Mark Brown
2020-05-08 16:53 ` Mark Brown
2020-05-07 15:07 ` Mark Brown
2020-05-07 15:26 ` Will Deacon
2020-05-07 17:25 ` Will Deacon
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=20200506195138.22086-1-broonie@kernel.org \
--to=broonie@kernel.org \
--cc=Dave.Martin@arm.com \
--cc=Vincenzo.Frascino@arm.com \
--cc=amit.kachhap@arm.com \
--cc=catalin.marinas@arm.com \
--cc=daniel@iogearbox.net \
--cc=jean-philippe.brucker@arm.com \
--cc=keescook@chromium.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=will@kernel.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: link
Be 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.