KVM: arm/arm64: Ensure only THP is candidate for adjustment
authorPunit Agrawal <punit.agrawal@arm.com>
Mon, 1 Oct 2018 15:54:35 +0000 (16:54 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 May 2019 17:42:26 +0000 (19:42 +0200)
commit363b93186ff4a4450d1e913281d2a8c5e7259f30
treeadb079ff87e67b04c7bb951646b6ac3988691d09
parent16be27a5ccfc654a7bd68eb362205362aabbd38b
KVM: arm/arm64: Ensure only THP is candidate for adjustment

[ Upstream commit fd2ef358282c849c193aa36dadbf4f07f7dcd29b ]

PageTransCompoundMap() returns true for hugetlbfs and THP
hugepages. This behaviour incorrectly leads to stage 2 faults for
unsupported hugepage sizes (e.g., 64K hugepage with 4K pages) to be
treated as THP faults.

Tighten the check to filter out hugetlbfs pages. This also leads to
consistently mapping all unsupported hugepage sizes as PTE level
entries at stage 2.

Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Suzuki Poulose <suzuki.poulose@arm.com>
Cc: Christoffer Dall <christoffer.dall@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: stable@vger.kernel.org # v4.13+
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
virt/kvm/arm/mmu.c