X-Git-Url: http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=blobdiff_plain;f=virt%2Fkvm%2Fkvm_main.c;h=9f32bffd37c0fcd9c95fd7887e9e62b5d1e294cc;hp=64be836f3348bebc959442c801371c2c2f64a42c;hb=a355aa54f1d25dff83c0feef8863d83a76988fdb;hpb=342d3db763f2621ed4546ebf8f6c61cb29d7fbdb diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 64be836..9f32bff 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -357,11 +357,11 @@ static void kvm_mmu_notifier_invalidate_range_end(struct mmu_notifier *mn, * been freed. */ kvm->mmu_notifier_seq++; + smp_wmb(); /* * The above sequence increase must be visible before the - * below count decrease but both values are read by the kvm - * page fault under mmu_lock spinlock so we don't need to add - * a smb_wmb() here in between the two. + * below count decrease, which is ensured by the smp_wmb above + * in conjunction with the smp_rmb in mmu_notifier_retry(). */ kvm->mmu_notifier_count--; spin_unlock(&kvm->mmu_lock);