Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/10] arm64: BTI kernel and vDSO support
@ 2020-04-15 13:07 Mark Brown
  2020-04-15 13:07 ` [PATCH 01/10] arm64: kernel: Convert to modern annotations for assembly functions Mark Brown
                   ` (10 more replies)
  0 siblings, 11 replies; 17+ messages in thread
From: Mark Brown @ 2020-04-15 13:07 UTC (permalink / raw)
  To: Vincenzo Frascino, Will Deacon, Catalin Marinas
  Cc: Mark Brown, Kees Cook, linux-arm-kernel

This patch series builds on top of a merge of for-next/bti in the arm64
tree and v5.7-rc1 to add support for protecting the kernel and vDSO with
BTI.  It does not currently handle BPF, that will be added in a future
update.

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.

Due to code generation issues with current versions of GCC we currently
disable this support when building with GCC, these issues are under
active investigation and once fixes are understood we can add suitable
dependencies.

Mark Brown (10):
  arm64: kernel: Convert to modern annotations for assembly 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: mm: Mark module 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                           |  4 ++
 arch/arm64/include/asm/assembler.h            | 41 +++++++++++++++++
 arch/arm64/include/asm/linkage.h              | 46 +++++++++++++++++++
 arch/arm64/include/asm/pgtable-prot.h         |  5 ++
 arch/arm64/kernel/cpu-reset.S                 |  4 +-
 arch/arm64/kernel/cpufeature.c                |  4 ++
 arch/arm64/kernel/efi-rt-wrapper.S            |  4 +-
 arch/arm64/kernel/entry-fpsimd.S              | 20 ++++----
 arch/arm64/kernel/entry.S                     |  7 +--
 arch/arm64/kernel/hibernate-asm.S             | 16 +++----
 arch/arm64/kernel/hyp-stub.S                  | 20 ++++----
 arch/arm64/kernel/probes/kprobes_trampoline.S |  4 +-
 arch/arm64/kernel/reloc_test_syms.S           | 44 +++++++++---------
 arch/arm64/kernel/relocate_kernel.S           |  4 +-
 arch/arm64/kernel/sleep.S                     | 12 ++---
 arch/arm64/kernel/smccc-call.S                |  8 ++--
 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 +-
 24 files changed, 233 insertions(+), 75 deletions(-)

-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-04-29 10:10 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-15 13:07 [PATCH 00/10] arm64: BTI kernel and vDSO support Mark Brown
2020-04-15 13:07 ` [PATCH 01/10] arm64: kernel: Convert to modern annotations for assembly functions Mark Brown
2020-04-15 13:07 ` [PATCH 02/10] arm64: bti: Support building kernel C code using BTI Mark Brown
2020-04-15 13:07 ` [PATCH 03/10] arm64: asm: Override SYM_FUNC_START when building the kernel with BTI Mark Brown
2020-04-15 13:07 ` [PATCH 04/10] arm64: Set GP bit in kernel page tables to enable BTI for the kernel Mark Brown
2020-04-28 17:24   ` Catalin Marinas
2020-04-28 18:03     ` Mark Brown
2020-04-29  7:40       ` Will Deacon
2020-04-29 10:10         ` Mark Brown
2020-04-15 13:07 ` [PATCH 05/10] arm64: mm: Mark module text as guarded pages Mark Brown
2020-04-27 15:07   ` Mark Brown
2020-04-15 13:07 ` [PATCH 06/10] arm64: bti: Provide Kconfig for kernel mode BTI Mark Brown
2020-04-15 13:07 ` [PATCH 07/10] arm64: asm: Provide a mechanism for generating ELF note for BTI Mark Brown
2020-04-15 13:07 ` [PATCH 08/10] arm64: vdso: Annotate " Mark Brown
2020-04-15 13:07 ` [PATCH 09/10] arm64: vdso: Force the vDSO to be linked as BTI when built " Mark Brown
2020-04-15 13:07 ` [PATCH 10/10] arm64: vdso: Map the vDSO text with guarded pages " Mark Brown
2020-04-15 13:07 ` [PATCH 10/10] arm64: vdso: Map the VDSO " Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox