Lines Matching refs:kvm_state
6648 struct kvm_nested_state kvm_state = {
6651 .size = sizeof(kvm_state),
6661 return kvm_state.size + sizeof(*user_vmx_nested_state);
6668 kvm_state.hdr.vmx.vmxon_pa = vmx->nested.vmxon_ptr;
6669 kvm_state.hdr.vmx.vmcs12_pa = vmx->nested.current_vmptr;
6672 kvm_state.size += sizeof(user_vmx_nested_state->vmcs12);
6676 kvm_state.flags |= KVM_STATE_NESTED_EVMCS;
6681 kvm_state.size += sizeof(user_vmx_nested_state->shadow_vmcs12);
6685 kvm_state.hdr.vmx.smm.flags |= KVM_STATE_NESTED_SMM_VMXON;
6688 kvm_state.hdr.vmx.smm.flags |= KVM_STATE_NESTED_SMM_GUEST_MODE;
6691 kvm_state.flags |= KVM_STATE_NESTED_GUEST_MODE;
6694 kvm_state.flags |= KVM_STATE_NESTED_RUN_PENDING;
6697 kvm_state.flags |= KVM_STATE_NESTED_MTF_PENDING;
6701 kvm_state.hdr.vmx.flags |=
6703 kvm_state.hdr.vmx.preemption_timer_deadline =
6709 if (user_data_size < kvm_state.size)
6712 if (copy_to_user(user_kvm_nested_state, &kvm_state, sizeof(kvm_state)))
6762 return kvm_state.size;
6776 struct kvm_nested_state *kvm_state)
6785 if (kvm_state->format != KVM_STATE_NESTED_FORMAT_VMX)
6788 if (kvm_state->hdr.vmx.vmxon_pa == INVALID_GPA) {
6789 if (kvm_state->hdr.vmx.smm.flags)
6792 if (kvm_state->hdr.vmx.vmcs12_pa != INVALID_GPA)
6804 if (kvm_state->flags & ~KVM_STATE_NESTED_EVMCS)
6810 if (!page_address_valid(vcpu, kvm_state->hdr.vmx.vmxon_pa))
6814 if ((kvm_state->hdr.vmx.smm.flags & KVM_STATE_NESTED_SMM_GUEST_MODE) &&
6815 (kvm_state->flags & KVM_STATE_NESTED_GUEST_MODE))
6818 if (kvm_state->hdr.vmx.smm.flags &
6822 if (kvm_state->hdr.vmx.flags & ~KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE)
6831 (kvm_state->flags &
6833 : kvm_state->hdr.vmx.smm.flags)
6836 if ((kvm_state->hdr.vmx.smm.flags & KVM_STATE_NESTED_SMM_GUEST_MODE) &&
6837 !(kvm_state->hdr.vmx.smm.flags & KVM_STATE_NESTED_SMM_VMXON))
6840 if ((kvm_state->flags & KVM_STATE_NESTED_EVMCS) &&
6847 if (kvm_state->hdr.vmx.vmxon_pa == INVALID_GPA)
6850 vmx->nested.vmxon_ptr = kvm_state->hdr.vmx.vmxon_pa;
6856 if (kvm_state->size < sizeof(*kvm_state) + sizeof(*vmcs12)) {
6858 if ((kvm_state->flags & KVM_STATE_NESTED_GUEST_MODE) ||
6859 (kvm_state->flags & KVM_STATE_NESTED_EVMCS) ||
6860 (kvm_state->hdr.vmx.vmcs12_pa != INVALID_GPA))
6866 if (kvm_state->hdr.vmx.vmcs12_pa != INVALID_GPA) {
6867 if (kvm_state->hdr.vmx.vmcs12_pa == kvm_state->hdr.vmx.vmxon_pa ||
6868 !page_address_valid(vcpu, kvm_state->hdr.vmx.vmcs12_pa))
6871 set_current_vmptr(vmx, kvm_state->hdr.vmx.vmcs12_pa);
6873 } else if (kvm_state->flags & KVM_STATE_NESTED_EVMCS) {
6887 if (kvm_state->hdr.vmx.smm.flags & KVM_STATE_NESTED_SMM_VMXON) {
6891 if (kvm_state->hdr.vmx.smm.flags & KVM_STATE_NESTED_SMM_GUEST_MODE)
6902 if (!(kvm_state->flags & KVM_STATE_NESTED_GUEST_MODE))
6906 !!(kvm_state->flags & KVM_STATE_NESTED_RUN_PENDING);
6909 !!(kvm_state->flags & KVM_STATE_NESTED_MTF_PENDING);
6916 if (kvm_state->size <
6917 sizeof(*kvm_state) +
6934 if (kvm_state->hdr.vmx.flags & KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE) {
6937 kvm_state->hdr.vmx.preemption_timer_deadline;