On 28/06/19 13:23, Vitaly Kuznetsov wrote: > VMCLEAR implementation for Enlightened VMCS is not entirely correct > when something else than the currently active eVMCS on the calling vCPU > is targeted. In case there's no currently active eVMCS on the calling vCPU > we are corrupting the targeted area by writing to the non-existent > launch_state field. > > Fix the logic by always treating the targeted area as 'enlightened' in case > Enlightened VMEntry is enabled on the calling vCPU. > > Changes since v1: > - 'evmcs_vmptr' -> 'evmcs_gpa' [Paolo Bonzini] > - avoid nested_release_evmcs() in handle_vmclear even for the currently > active eVMCS on the calling vCPU [Liran Alon], PATCH1 added to support > the change. > > Vitaly Kuznetsov (2): > x86/KVM/nVMX: don't use clean fields data on enlightened VMLAUNCH > x86/kvm/nVMX: fix VMCLEAR when Enlightened VMCS is in use > > arch/x86/kvm/vmx/evmcs.c | 18 ++++++++++++++ > arch/x86/kvm/vmx/evmcs.h | 1 + > arch/x86/kvm/vmx/nested.c | 52 ++++++++++++++++++++++----------------- > 3 files changed, 49 insertions(+), 22 deletions(-) > Queued, thanks. Paolo