• Paul Mackerras's avatar
    KVM: PPC: Book3S HV: Fix race in reading change bit when removing HPTE · 1e5bf454
    Paul Mackerras authored
    The reference (R) and change (C) bits in a HPT entry can be set by
    hardware at any time up until the HPTE is invalidated and the TLB
    invalidation sequence has completed.  This means that when removing
    a HPTE, we need to read the HPTE after the invalidation sequence has
    completed in order to obtain reliable values of R and C.  The code
    in kvmppc_do_h_remove() used to do this.  However, commit 6f22bd32
    ("KVM: PPC: Book3S HV: Make HTAB code LE host aware") removed the
    read after invalidation as a side effect of other changes.  This
    restores the read of the HPTE after invalidation.
    
    The user-visible effect of this bug would be that when migrating a
    guest, there is a small probability that a page modified by the guest
    and then unmapped by the guest might not get re-transmitted and thus
    the destination might end up with a stale copy of the page.
    
    Fixes: 6f22bd32Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    1e5bf454
book3s_hv_rm_mmu.c 23.4 KB