]> git.baikalelectronics.ru Git - kernel.git/commit
kvm/ppc/e500: eliminate tlb_refs
authorScott Wood <scottwood@freescale.com>
Wed, 6 Mar 2013 16:02:49 +0000 (16:02 +0000)
committerAlexander Graf <agraf@suse.de>
Thu, 11 Apr 2013 13:53:43 +0000 (15:53 +0200)
commitcf1f2187f747a810fc489a60af95665308b234df
tree59bbb188fed8951f6aa7e0ff4d326755aaaa8f1b
parent3bad01f5d880a1187c78c5b259298033b7c1b90c
kvm/ppc/e500: eliminate tlb_refs

Commit 52ab742937ac87c7a8b926bbf14f2a347337bc6e ("KVM: PPC: E500:
Explicitly mark shadow maps invalid") began using E500_TLB_VALID
for guest TLB1 entries, and skipping invalidations if it's not set.

However, when E500_TLB_VALID was set for such entries, it was on a
fake local ref, and so the invalidations never happen.  gtlb_privs
is documented as being only for guest TLB0, though we already violate
that with E500_TLB_BITMAP.

Now that we have MMU notifiers, and thus don't need to actually
retain a reference to the mapped pages, get rid of tlb_refs, and
use gtlb_privs for E500_TLB_VALID in TLB1.

Since we can have more than one host TLB entry for a given tlbe_ref,
be careful not to clear existing flags that are relevant to other
host TLB entries when preparing a new host TLB entry.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
arch/powerpc/kvm/e500.h
arch/powerpc/kvm/e500_mmu_host.c