On 20.11.2012, at 10:01, Paul Mackerras wrote: > This fixes a bug where adding a new guest HPT entry via the H_ENTER > hcall would lose the "changed" bit in the reverse map information > for the guest physical page being mapped. The result was that the > KVM_GET_DIRTY_LOG could return a zero bit for the page even though > the page had been modified by the guest. > > This fixes it by only modifying the index and present bits in the > reverse map entry, thus preserving the reference and change bits. > We were also unnecessarily setting the reference bit, and this > fixes that too. > > Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx> Thanks, applied to kvm-ppc-next. Alex > --- > This is against Alex Graf's kvm-ppc-next branch plus the series of three > patches I just sent, but it should be independent of that series. > > arch/powerpc/kvm/book3s_hv_rm_mmu.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/powerpc/kvm/book3s_hv_rm_mmu.c b/arch/powerpc/kvm/book3s_hv_rm_mmu.c > index 2334000..fc3da32 100644 > --- a/arch/powerpc/kvm/book3s_hv_rm_mmu.c > +++ b/arch/powerpc/kvm/book3s_hv_rm_mmu.c > @@ -59,10 +59,10 @@ void kvmppc_add_revmap_chain(struct kvm *kvm, struct revmap_entry *rev, > head->back = pte_index; > } else { > rev->forw = rev->back = pte_index; > - i = pte_index; > + *rmap = (*rmap & ~KVMPPC_RMAP_INDEX) | > + pte_index | KVMPPC_RMAP_PRESENT; > } > - smp_wmb(); > - *rmap = i | KVMPPC_RMAP_REFERENCED | KVMPPC_RMAP_PRESENT; /* unlock */ > + unlock_rmap(rmap); > } > EXPORT_SYMBOL_GPL(kvmppc_add_revmap_chain); > > -- > 1.7.10.4 > > -- > To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html