On Mon, Jul 28, 2008 at 06:11:04PM -0300, Marcelo Tosatti wrote:
> > +static int kvm_unmap_rmapp(struct kvm *kvm, unsigned long *rmapp)
> > +{
> > +   u64 *spte;
> > +   int need_tlb_flush = 0;
> > +
> > +   while ((spte = rmap_next(kvm, rmapp, NULL))) {
                                            ^^^^^^^^

Yeah, I can't read. :-)


> > +           BUG_ON(!(*spte & PT_PRESENT_MASK));
> > +           rmap_printk("kvm_rmap_unmap_hva: spte %p %llx\n", spte, *spte);
> > +           rmap_remove(kvm, spte);
> > +           set_shadow_pte(spte, shadow_trap_nonpresent_pte);
> > +           need_tlb_flush = 1;
> > +   }
> 
> Is rmap_remove() safe during rmap_next() iteration? Don't you need to
> restart the rmap walk from the beginning?
> 
> Remember the discussion around commit
> 6597ca09e6c0e5aec7ffd2b8ab48c671d3c28414.
--
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

Reply via email to