OpenCloudOS-Kernel/arch/arm64/lib
Steven Price 36943aba91 arm64: mte: Enable swap of tagged pages
When swapping pages out to disk it is necessary to save any tags that
have been set, and restore when swapping back in. Make use of the new
page flag (PG_ARCH_2, locally named PG_mte_tagged) to identify pages
with tags. When swapping out these pages the tags are stored in memory
and later restored when the pages are brought back in. Because shmem can
swap pages back in without restoring the userspace PTE it is also
necessary to add a hook for shmem.

Signed-off-by: Steven Price <steven.price@arm.com>
[catalin.marinas@arm.com: move function prototypes to mte.h]
[catalin.marinas@arm.com: drop '_tags' from arch_swap_restore_tags()]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Will Deacon <will@kernel.org>
2020-09-04 12:46:07 +01:00
..
Makefile arm64: mte: Clear the tags when a page is mapped in user-space with PROT_MTE 2020-09-04 12:46:06 +01:00
clear_page.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
clear_user.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
copy_from_user.S arm64: Reorder the macro arguments in the copy routines 2020-04-29 21:50:01 +01:00
copy_in_user.S arm64: Reorder the macro arguments in the copy routines 2020-04-29 21:50:01 +01:00
copy_page.S Merge branch 'for-next/asm-annotations' into for-next/core 2020-01-22 11:34:21 +00:00
copy_template.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
copy_to_user.S arm64: Reorder the macro arguments in the copy routines 2020-04-29 21:50:01 +01:00
crc32.S arm64: lib: Consistently enable crc32 extension 2020-04-28 14:36:32 +01:00
csum.c arm64: csum: Disable KASAN for do_csum() 2020-04-15 21:36:41 +01:00
delay.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
error-inject.c arm64: Add support for function error injection 2019-08-07 13:53:09 +01:00
memchr.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
memcmp.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
memcpy.S arm64: Reorder the macro arguments in the copy routines 2020-04-29 21:50:01 +01:00
memmove.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
memset.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
mte.S arm64: mte: Enable swap of tagged pages 2020-09-04 12:46:07 +01:00
strchr.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
strcmp.S arm64: fix spelling mistake "ca not" -> "cannot" 2020-03-17 18:22:40 +00:00
strlen.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
strncmp.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
strnlen.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
strrchr.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
tishift.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
uaccess_flushcache.c arm64: uaccess: Remove uaccess_*_not_uao asm macros 2019-11-20 18:51:54 +00:00
xor-neon.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00