linux/arch
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
..
alpha mm: arch: remove indirection level in alloc_zeroed_user_highpage_movable() 2021-06-04 19:32:21 +01:00
arc ARC: mm: Use max_high_pfn as a HIGHMEM zone border 2021-05-10 12:38:59 -07:00
arm A few fixes for irqchip drivers: 2021-05-23 06:28:20 -10:00
arm64 arm64: mte: handle tags zeroing at page allocation time 2021-06-04 19:32:21 +01:00
csky arch/csky patches for 5.13-rc1 2021-05-03 12:58:31 -07:00
h8300 arch: rearrange headers inclusion order in asm/bitops for m68k, sh and h8300 2021-05-06 19:24:11 -07:00
hexagon Merge branch 'akpm' (patches from Andrew) 2021-05-07 00:34:51 -07:00
ia64 mm: arch: remove indirection level in alloc_zeroed_user_highpage_movable() 2021-06-04 19:32:21 +01:00
m68k mm: arch: remove indirection level in alloc_zeroed_user_highpage_movable() 2021-06-04 19:32:21 +01:00
microblaze quota: Disable quotactl_path syscall 2021-05-17 14:39:56 +02:00
mips quota: Disable quotactl_path syscall 2021-05-17 14:39:56 +02:00
nds32 tracing updates for 5.13 2021-05-03 11:19:54 -07:00
nios2 Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2021-05-02 09:14:01 -07:00
openrisc OpenRISC fixes for 5.13 2021-05-21 06:06:19 -10:00
parisc quota: Disable quotactl_path syscall 2021-05-17 14:39:56 +02:00
powerpc powerpc fixes for 5.13 #4 2021-05-23 06:07:33 -10:00
riscv riscv: remove unused handle_exception symbol 2021-05-06 09:40:16 -07:00
s390 mm: arch: remove indirection level in alloc_zeroed_user_highpage_movable() 2021-06-04 19:32:21 +01:00
sh \n 2021-05-20 06:20:15 -10:00
sparc quota: Disable quotactl_path syscall 2021-05-17 14:39:56 +02:00
um Merge branch 'akpm' (patches from Andrew) 2021-05-07 00:34:51 -07:00
x86 mm: arch: remove indirection level in alloc_zeroed_user_highpage_movable() 2021-06-04 19:32:21 +01:00
xtensa quota: Disable quotactl_path syscall 2021-05-17 14:39:56 +02:00
.gitignore .gitignore: prefix local generated files with a slash 2021-05-02 00:43:35 +09:00
Kconfig Add Landlock, a new LSM from Mickaël Salaün <mic@linux.microsoft.com> 2021-05-01 18:50:44 -07:00