fetch() has become a monster, with a zillion continues, breaks, and gotos.
Simplify it before Xiao adds even more.
Also fix the gpte validation race.
Avi Kivity (8):
KVM: MMU: Add link_shadow_page() helper
KVM: MMU: Use __set_spte to link shadow pages
KVM: MMU: Add drop_large_spte() helper
v2: s/drop_spte_if_large/drop_large_spte/g
KVM: MMU: Add validate_direct_spte() helper
KVM: MMU: Add gpte_changed() helper
v4: change name to gpte_changed(), move error handling back to fetch()
v2: add comments
make validate_indirect_spte() look at spte in its own level, not one
below (but adjust caller so no net effect)
KVM: MMU: Simplify spte fetch() function
v2: add comments
update 'sptep' and 'level' for last level
KVM: MMU: Validate all gptes during fetch, not just those used for
new pages
v4: fix freeing of incorrect shadow page on changed gpte
v3: fix top-level gpte validation oops
v2: validate top-level gpte (in root page)
KVM: MMU: Eliminate redundant temporaries in FNAME(fetch)
v2: new patch
arch/x86/kvm/mmu.c | 41 ++++++++++++
arch/x86/kvm/paging_tmpl.h | 150 ++++++++++++++++++++++----------------------
2 files changed, 115 insertions(+), 76 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html