linux/arch/arm64
Peter Collingbourne 013bb59dbb arm64: mte: handle tags zeroing at page allocation time
Currently, on an anonymous page fault, the kernel allocates a zeroed
page and maps it in user space. If the mapping is tagged (PROT_MTE),
set_pte_at() additionally clears the tags. It is, however, more
efficient to clear the tags at the same time as zeroing the data on
allocation. To avoid clearing the tags on any page (which may not be
mapped as tagged), only do this if the vma flags contain VM_MTE. This
requires introducing a new GFP flag that is used to determine whether
to clear the tags.

The DC GZVA instruction with a 0 top byte (and 0 tag) requires
top-byte-ignore. Set the TCR_EL1.{TBI1,TBID1} bits irrespective of
whether KASAN_HW is enabled.

Signed-off-by: Peter Collingbourne <pcc@google.com>
Co-developed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://linux-review.googlesource.com/id/Id46dc94e30fe11474f7e54f5d65e7658dbdddb26
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
Link: https://lore.kernel.org/r/20210602235230.3928842-4-pcc@google.com
Signed-off-by: Will Deacon <will@kernel.org>
2021-06-04 19:32:21 +01:00
..
boot ARM: SoC fixes for 5.13 2021-05-20 14:46:26 -10:00
configs ARM: platform support for Apple M1 2021-04-26 12:30:36 -07:00
crypto arm64 updates for 5.13: 2021-04-26 10:25:03 -07:00
include arm64: mte: handle tags zeroing at page allocation time 2021-06-04 19:32:21 +01:00
kernel Assorted arm64 fixes and clean-ups, the most important: 2021-05-07 12:11:05 -07:00
kvm ARM: 2021-05-01 10:14:08 -07:00
lib arm64: mte: handle tags zeroing at page allocation time 2021-06-04 19:32:21 +01:00
mm arm64: mte: handle tags zeroing at page allocation time 2021-06-04 19:32:21 +01:00
net bpf: Rename BPF_XADD and prepare to encode other atomics in .imm 2021-01-14 18:34:29 -08:00
tools arm64: tools: Add __ASM_CPUCAPS_H to the endif in cpucaps.h 2021-05-13 17:57:43 +01:00
xen
Kbuild
Kconfig Assorted arm64 fixes and clean-ups, the most important: 2021-05-07 12:11:05 -07:00
Kconfig.debug arm64: remove TEXT_OFFSET randomization 2020-06-15 13:10:59 +01:00
Kconfig.platforms This is the bulk of the pin control changes for the v5.13 kernel cycle 2021-04-30 13:04:30 -07:00
Makefile arm64: Generate cpucaps.h 2021-05-10 10:16:37 +01:00