• Vitaly Kuznetsov's avatar
    KVM: nVMX: properly handle errors in nested_vmx_handle_enlightened_vmptrld() · b6a0653a
    Vitaly Kuznetsov authored
    nested_vmx_handle_enlightened_vmptrld() fails in two cases:
    - when we fail to kvm_vcpu_map() the supplied GPA
    - when revision_id is incorrect.
    Genuine Hyper-V raises #UD in the former case (at least with *some*
    incorrect GPAs) and does VMfailInvalid() in the later. KVM doesn't do
    anything so L1 just gets stuck retrying the same faulty VMLAUNCH.
    
    nested_vmx_handle_enlightened_vmptrld() has two call sites:
    nested_vmx_run() and nested_get_vmcs12_pages(). The former needs to queue
    do much: the failure there happens after migration when L2 was running (and
    L1 did something weird like wrote to VP assist page from a different vCPU),
    just kill L1 with KVM_EXIT_INTERNAL_ERROR.
    Reported-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    [Squash kbuild autopatch. - Paolo]
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    b6a0653a
nested.c 192 KB