• Maxim Levitsky's avatar
    KVM: x86: disable preemption around the call to kvm_arch_vcpu_{un|}blocking · 18869f26
    Maxim Levitsky authored
    On SVM, if preemption happens right after the call to finish_rcuwait
    but before call to kvm_arch_vcpu_unblocking on SVM/AVIC, it itself
    will re-enable AVIC, and then we will try to re-enable it again
    in kvm_arch_vcpu_unblocking which will lead to a warning
    in __avic_vcpu_load.
    
    The same problem can happen if the vCPU is preempted right after the call
    to kvm_arch_vcpu_blocking but before the call to prepare_to_rcuwait
    and in this case, we will end up with AVIC enabled during sleep -
    Ooops.
    Signed-off-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
    Message-Id: <20220606180829.102503-7-mlevitsk@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    18869f26
kvm_main.c 147 KB