Skip to content

Commit

Permalink
target/i386: kvm: Fix when nested state is needed for migration
Browse files Browse the repository at this point in the history
When vCPU is in VMX operation and enters SMM mode,
it temporarily exits VMX operation but KVM maintained nested-state
still stores the VMXON region physical address, i.e. even when the
vCPU is in SMM mode then (nested_state->hdr.vmx.vmxon_pa != -1ull).

Therefore, there is no need to explicitly check for
KVM_STATE_NESTED_SMM_VMXON to determine if it is necessary
to save nested-state as part of migration stream.

Reviewed-by: Karl Heubaum <karl.heubaum@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20190624230514.53326-1-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
Liran Alon authored and bonzini committed Jul 5, 2019
1 parent 6b7ac49 commit ec7b1bb
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions target/i386/machine.c
Expand Up @@ -997,9 +997,8 @@ static bool vmx_nested_state_needed(void *opaque)
{
struct kvm_nested_state *nested_state = opaque;

return ((nested_state->format == KVM_STATE_NESTED_FORMAT_VMX) &&
((nested_state->hdr.vmx.vmxon_pa != -1ull) ||
(nested_state->hdr.vmx.smm.flags & KVM_STATE_NESTED_SMM_VMXON)));
return (nested_state->format == KVM_STATE_NESTED_FORMAT_VMX &&
nested_state->hdr.vmx.vmxon_pa != -1ull);
}

static const VMStateDescription vmstate_vmx_nested_state = {
Expand Down

0 comments on commit ec7b1bb

Please sign in to comment.