Current code has two ways to walk pte_list, the one is pte_list_walk and the another way is rmap_get_first and rmap_get_next, they have the same logic. This patchset tries to unify the code and also make the code more tidy. Patch 1: KVM: MMU: introduce mmu_spte_establish, which tries to eliminates the different between walking parent pte list and rmap, prepare for the later patch. Patch 2: KVM: MMU: clarify the logic in kvm_set_pte_rmapp, which prepares for the next patch, no logic changed. Patch 3: KVM: MMU: unify the code of walking pte list, unify the walking code. Patch 4: KVM: MMU: fix spte assertion, fix a minor bug and remove the duplicate code. Patch 5: KVM: MMU: fast drop all spte on the pte_list, optimize for dropping all sptes on rmap and remove all the "goto restart" pattern introduced by the Patch 3. Marcelo, Gleb, please apply them after applying the patchset of [PATCH v3 0/3] KVM: MMU: simple cleanups. Changelog: v3: - address Gleb's comments, remove the remained "goto restart" in kvm_set_pte_rmapp - improve the changelog Thanks! -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html