From: Sean Christopherson Date: Wed, 8 Jan 2020 20:24:45 +0000 (-0800) Subject: KVM: x86/mmu: Zap any compound page when collapsing sptes X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=d32ec81bab670e599e645e1d1d5231d62de7d0d6;p=openwrt%2Fstaging%2Fblogic.git KVM: x86/mmu: Zap any compound page when collapsing sptes Zap any compound page, e.g. THP or HugeTLB pages, when zapping sptes that can potentially be converted to huge sptes after disabling dirty logging on the associated memslot. Note, this approach could result in false positives, e.g. if a random compound page is mapped into the guest, but mapping non-huge compound pages into the guest is far from the norm, and toggling dirty logging is not a frequent operation. Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini --- diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c index 6be0239dcfbf..9090842ccd10 100644 --- a/arch/x86/kvm/mmu/mmu.c +++ b/arch/x86/kvm/mmu/mmu.c @@ -5951,7 +5951,7 @@ restart: */ if (sp->role.direct && !kvm_is_reserved_pfn(pfn) && !kvm_is_zone_device_pfn(pfn) && - kvm_is_transparent_hugepage(pfn)) { + PageCompound(pfn_to_page(pfn))) { pte_list_remove(rmap_head, sptep); if (kvm_available_flush_tlb_with_range())