On Wed, Jul 18, 2018 at 10:55 AM, Radim Krčmář <rkrcmar@xxxxxxxxxx> wrote: >> + vmx->nested.nested_run_pending = 1; > > This is not necessary. We're only copying state and do not add anything > that would be lost on a nested VM exit without prior VM entry. If nested_run_pending is blindly set on restore, then prepare_vmcs02 will do the wrong thing. For example, if there was an injected event in the vmcs12, it will get injected again, even if the vCPU has been in L2 for some time. The value of nested_run_pending should always come from the saved VMX state (a few lines above).