• David Gibson's avatar
    KVM: PPC: Book3S HV: Always flush TLB in kvmppc_alloc_reset_hpt() · ecba8297
    David Gibson authored
    The KVM_PPC_ALLOCATE_HTAB ioctl(), implemented by kvmppc_alloc_reset_hpt()
    is supposed to completely clear and reset a guest's Hashed Page Table (HPT)
    allocating or re-allocating it if necessary.
    
    In the case where an HPT of the right size already exists and it just
    zeroes it, it forces a TLB flush on all guest CPUs, to remove any stale TLB
    entries loaded from the old HPT.
    
    However, that situation can arise when the HPT is resizing as well - or
    even when switching from an RPT to HPT - so those cases need a TLB flush as
    well.
    
    So, move the TLB flush to trigger in all cases except for errors.
    
    Cc: stable@vger.kernel.org # v4.10+
    Fixes: f98a8bf9 ("KVM: PPC: Book3S HV: Allow KVM_PPC_ALLOCATE_HTAB ioctl() to change HPT size")
    Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    ecba8297
book3s_64_mmu_hv.c 53.1 KB