• Paul Mackerras's avatar
    KVM: PPC: Book3S HV: Use correct pagesize in kvm_unmap_radix() · c066fafc
    Paul Mackerras authored
    Since commit e641a317 ("KVM: PPC: Book3S HV: Unify dirty page map
    between HPT and radix", 2017-10-26), kvm_unmap_radix() computes the
    number of PAGE_SIZEd pages being unmapped and passes it to
    kvmppc_update_dirty_map(), which expects to be passed the page size
    instead.  Consequently it will only mark one system page dirty even
    when a large page (for example a THP page) is being unmapped.  The
    consequence of this is that part of the THP page might not get copied
    during live migration, resulting in memory corruption for the guest.
    
    This fixes it by computing and passing the page size in kvm_unmap_radix().
    
    Cc: stable@vger.kernel.org # v4.15+
    Fixes: e641a317 (KVM: PPC: Book3S HV: Unify dirty page map between HPT and radix)
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    c066fafc
book3s_64_mmu_radix.c 22.9 KB