diff options
| author | Ard Biesheuvel <ardb@kernel.org> | 2026-06-04 18:11:56 +0300 |
|---|---|---|
| committer | Will Deacon <will@kernel.org> | 2026-06-05 13:44:10 +0300 |
| commit | 2986a625740599fe6e7635b0586fed2a95bcd1f7 (patch) | |
| tree | 518b2fd1742b6ca822a7c7e976b2badd56f3d2b2 | |
| parent | 568def8e87fc666682ec5a74713983ac32335213 (diff) | |
| download | linux-2986a625740599fe6e7635b0586fed2a95bcd1f7.tar.xz | |
KVM: arm64: Omit tag sync on stage-2 mappings of the zero page
Commit
f620d66af316 ("arm64: mte: Do not flag the zero page as PG_mte_tagged")
removed the PG_mte_tagged flag from the zero page, but missed a KVM code
path that may set this flag on the zero page when it is used in a
stage-2 CoW mapping of anonymous memory.
So disregard the zero page explicitly in sanitise_mte_tags().
Fixes: f620d66af316 ("arm64: mte: Do not flag the zero page as PG_mte_tagged")
Cc: stable@vger.kernel.org # 5.10.x
Suggested-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
| -rw-r--r-- | arch/arm64/kvm/mmu.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index d089c107d9b7..445d6cf035c9 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -1479,6 +1479,11 @@ static void sanitise_mte_tags(struct kvm *kvm, kvm_pfn_t pfn, if (!kvm_has_mte(kvm)) return; + if (is_zero_pfn(pfn)) { + WARN_ON_ONCE(nr_pages != 1); + return; + } + if (folio_test_hugetlb(folio)) { /* Hugetlb has MTE flags set on head page only */ if (folio_try_hugetlb_mte_tagging(folio)) { |
