From: Tianyu Lan  Sent: Monday, September 17, 2018 8:18 PM
>
> +static void kvm_flush_remote_tlbs_with_range(struct kvm *kvm,
> +             struct kvm_tlb_range *range)
> +{
> +     int ret = -ENOTSUPP;
> +
> +     if (range && kvm_x86_ops->tlb_remote_flush_with_range) {
> +             /*
> +              * Read tlbs_dirty before setting KVM_REQ_TLB_FLUSH in
> +              * kvm_make_all_cpus_request.
> +              */
> +             long dirty_count = smp_load_acquire(&kvm->tlbs_dirty);
> +
> +             ret = kvm_x86_ops->tlb_remote_flush_with_range(kvm, range);
> +             cmpxchg(&kvm->tlbs_dirty, dirty_count, 0);
> +     }

The comment and the code that manipulates kvm->tlbs_dirty appears
to have been copied from kvm_flush_remote_tlbs().  But the above
code doesn't call kvm_make_all_cpus_request().   I haven't traced
all the details, but it seems like the comment should be updated,
or the code isn't needed.

Michael

Reply via email to