On 05/09/2013 02:44 PM, Takuya Yoshikawa wrote: > Rather than clearing the ACC_WRITE_MASK bit of pte_access in the > "if (mmu_need_write_protect())" block not to call mark_page_dirty() in > the following if statement, simply moving the call into the appropriate > else block is better. > > Signed-off-by: Takuya Yoshikawa <yoshikawa_takuya_b1@xxxxxxxxxxxxx> > --- > arch/x86/kvm/mmu.c | 7 ++----- > 1 files changed, 2 insertions(+), 5 deletions(-) > > diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c > index 004cc87..08119a8 100644 > --- a/arch/x86/kvm/mmu.c > +++ b/arch/x86/kvm/mmu.c > @@ -2386,14 +2386,11 @@ static int set_spte(struct kvm_vcpu *vcpu, u64 *sptep, > pgprintk("%s: found shadow page for %llx, marking ro\n", > __func__, gfn); > ret = 1; > - pte_access &= ~ACC_WRITE_MASK; > spte &= ~(PT_WRITABLE_MASK | SPTE_MMU_WRITEABLE); > - } > + } else > + mark_page_dirty(vcpu->kvm, gfn); > } > > - if (pte_access & ACC_WRITE_MASK) > - mark_page_dirty(vcpu->kvm, gfn); > - > set_pte: > if (mmu_spte_update(sptep, spte)) > kvm_flush_remote_tlbs(vcpu->kvm); That function is really magic, and this change do no really help it. I had several patches posted some months ago to make these kind of code better understanding, but i am too tired to update them. -- 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