On 12/05/2015 04:32, Xiao Guangrong wrote:
- while ((sptep = rmap_get_first(*rmapp, &iter))) {
- BUG_ON(!(*sptep & PT_PRESENT_MASK));
+restart:
+ for_each_rmap_spte(rmapp, &iter, sptep) {
rmap_printk("kvm_rmap_unmap_hva: spte %p %llx gfn %llx (%d)\n",
sptep, *sptep, gfn, level);
drop_spte(kvm, sptep);
need_tlb_flush = 1;
+ goto restart;
}
For this one, I would keep using rmap_get_first. Otherwise looks good.
Paolo