]> www.infradead.org Git - users/jedix/linux-maple.git/commit
KVM: PPC: Book3S HV: Fix race in reading change bit when removing HPTE
authorPaul Mackerras <paulus@samba.org>
Wed, 24 Jun 2015 11:18:05 +0000 (21:18 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 21 Sep 2015 17:05:41 +0000 (10:05 -0700)
commit73e56fdc3699efea574812d1116dfebd347ce88e
tree8db2ea9701c8036ed0ce8643469a1e413b08e18e
parent76c77a45a74a51dc7bdf7773d8ec37ba7cffe361
KVM: PPC: Book3S HV: Fix race in reading change bit when removing HPTE

commit 1e5bf454f58731e360e504253e85bae7aaa2d298 upstream.

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 6f22bd3265fb
("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: 6f22bd3265fb
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/kvm/book3s_hv_rm_mmu.c