arm64: mte: Sync tags for pages where PTE is untagged
authorSteven Price <steven.price@arm.com>
Mon, 21 Jun 2021 11:17:11 +0000 (12:17 +0100)
committerMarc Zyngier <maz@kernel.org>
Tue, 22 Jun 2021 08:38:50 +0000 (09:38 +0100)
commit69e3b846d8a753f9f279f29531ca56b0f7563ad0
tree7d68951ac80b0e06327e833df40cbe2376b5a31b
parent8124c8a6b35386f73523d27eacb71b5364a68c4c
arm64: mte: Sync tags for pages where PTE is untagged

A KVM guest could store tags in a page even if the VMM hasn't mapped
the page with PROT_MTE. So when restoring pages from swap we will
need to check to see if there are any saved tags even if !pte_tagged().

However don't check pages for which pte_access_permitted() returns false
as these will not have been swapped out.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210621111716.37157-2-steven.price@arm.com
arch/arm64/include/asm/mte.h
arch/arm64/include/asm/pgtable.h
arch/arm64/kernel/mte.c