Lines Matching refs:vmcb12
442 struct vmcb *vmcb12) in nested_save_pending_event_to_vmcb12() argument
454 vmcb12->control.exit_int_info_err = in nested_save_pending_event_to_vmcb12()
471 vmcb12->control.exit_int_info = exit_int_info; in nested_save_pending_event_to_vmcb12()
527 static void nested_vmcb02_prepare_save(struct vcpu_svm *svm, struct vmcb *vmcb12) in nested_vmcb02_prepare_save() argument
542 if (unlikely(new_vmcb12 || vmcb_is_dirty(vmcb12, VMCB_SEG))) { in nested_vmcb02_prepare_save()
543 vmcb02->save.es = vmcb12->save.es; in nested_vmcb02_prepare_save()
544 vmcb02->save.cs = vmcb12->save.cs; in nested_vmcb02_prepare_save()
545 vmcb02->save.ss = vmcb12->save.ss; in nested_vmcb02_prepare_save()
546 vmcb02->save.ds = vmcb12->save.ds; in nested_vmcb02_prepare_save()
547 vmcb02->save.cpl = vmcb12->save.cpl; in nested_vmcb02_prepare_save()
551 if (unlikely(new_vmcb12 || vmcb_is_dirty(vmcb12, VMCB_DT))) { in nested_vmcb02_prepare_save()
552 vmcb02->save.gdtr = vmcb12->save.gdtr; in nested_vmcb02_prepare_save()
553 vmcb02->save.idtr = vmcb12->save.idtr; in nested_vmcb02_prepare_save()
557 kvm_set_rflags(&svm->vcpu, vmcb12->save.rflags | X86_EFLAGS_FIXED); in nested_vmcb02_prepare_save()
564 svm->vcpu.arch.cr2 = vmcb12->save.cr2; in nested_vmcb02_prepare_save()
566 kvm_rax_write(&svm->vcpu, vmcb12->save.rax); in nested_vmcb02_prepare_save()
567 kvm_rsp_write(&svm->vcpu, vmcb12->save.rsp); in nested_vmcb02_prepare_save()
568 kvm_rip_write(&svm->vcpu, vmcb12->save.rip); in nested_vmcb02_prepare_save()
571 vmcb02->save.rax = vmcb12->save.rax; in nested_vmcb02_prepare_save()
572 vmcb02->save.rsp = vmcb12->save.rsp; in nested_vmcb02_prepare_save()
573 vmcb02->save.rip = vmcb12->save.rip; in nested_vmcb02_prepare_save()
576 if (unlikely(new_vmcb12 || vmcb_is_dirty(vmcb12, VMCB_DR))) { in nested_vmcb02_prepare_save()
587 svm_copy_lbrs(vmcb02, vmcb12); in nested_vmcb02_prepare_save()
757 struct vmcb *vmcb12, bool from_vmrun) in enter_svm_guest_mode() argument
764 vmcb12->save.rip, in enter_svm_guest_mode()
765 vmcb12->control.int_ctl, in enter_svm_guest_mode()
766 vmcb12->control.event_inj, in enter_svm_guest_mode()
767 vmcb12->control.nested_ctl, in enter_svm_guest_mode()
768 vmcb12->control.nested_cr3, in enter_svm_guest_mode()
769 vmcb12->save.cr3, in enter_svm_guest_mode()
772 trace_kvm_nested_intercepts(vmcb12->control.intercepts[INTERCEPT_CR] & 0xffff, in enter_svm_guest_mode()
773 vmcb12->control.intercepts[INTERCEPT_CR] >> 16, in enter_svm_guest_mode()
774 vmcb12->control.intercepts[INTERCEPT_EXCEPTION], in enter_svm_guest_mode()
775 vmcb12->control.intercepts[INTERCEPT_WORD3], in enter_svm_guest_mode()
776 vmcb12->control.intercepts[INTERCEPT_WORD4], in enter_svm_guest_mode()
777 vmcb12->control.intercepts[INTERCEPT_WORD5]); in enter_svm_guest_mode()
787 nested_vmcb02_prepare_control(svm, vmcb12->save.rip, vmcb12->save.cs.base); in enter_svm_guest_mode()
788 nested_vmcb02_prepare_save(svm, vmcb12); in enter_svm_guest_mode()
810 struct vmcb *vmcb12; in nested_svm_vmrun() local
836 vmcb12 = map.hva; in nested_svm_vmrun()
841 nested_copy_vmcb_control_to_cache(svm, &vmcb12->control); in nested_svm_vmrun()
842 nested_copy_vmcb_save_to_cache(svm, &vmcb12->save); in nested_svm_vmrun()
846 vmcb12->control.exit_code = SVM_EXIT_ERR; in nested_svm_vmrun()
847 vmcb12->control.exit_code_hi = 0; in nested_svm_vmrun()
848 vmcb12->control.exit_info_1 = 0; in nested_svm_vmrun()
849 vmcb12->control.exit_info_2 = 0; in nested_svm_vmrun()
868 if (enter_svm_guest_mode(vcpu, vmcb12_gpa, vmcb12, true)) in nested_svm_vmrun()
934 struct vmcb *vmcb12; in nested_svm_vmexit() local
945 vmcb12 = map.hva; in nested_svm_vmexit()
959 vmcb12->save.es = vmcb02->save.es; in nested_svm_vmexit()
960 vmcb12->save.cs = vmcb02->save.cs; in nested_svm_vmexit()
961 vmcb12->save.ss = vmcb02->save.ss; in nested_svm_vmexit()
962 vmcb12->save.ds = vmcb02->save.ds; in nested_svm_vmexit()
963 vmcb12->save.gdtr = vmcb02->save.gdtr; in nested_svm_vmexit()
964 vmcb12->save.idtr = vmcb02->save.idtr; in nested_svm_vmexit()
965 vmcb12->save.efer = svm->vcpu.arch.efer; in nested_svm_vmexit()
966 vmcb12->save.cr0 = kvm_read_cr0(vcpu); in nested_svm_vmexit()
967 vmcb12->save.cr3 = kvm_read_cr3(vcpu); in nested_svm_vmexit()
968 vmcb12->save.cr2 = vmcb02->save.cr2; in nested_svm_vmexit()
969 vmcb12->save.cr4 = svm->vcpu.arch.cr4; in nested_svm_vmexit()
970 vmcb12->save.rflags = kvm_get_rflags(vcpu); in nested_svm_vmexit()
971 vmcb12->save.rip = kvm_rip_read(vcpu); in nested_svm_vmexit()
972 vmcb12->save.rsp = kvm_rsp_read(vcpu); in nested_svm_vmexit()
973 vmcb12->save.rax = kvm_rax_read(vcpu); in nested_svm_vmexit()
974 vmcb12->save.dr7 = vmcb02->save.dr7; in nested_svm_vmexit()
975 vmcb12->save.dr6 = svm->vcpu.arch.dr6; in nested_svm_vmexit()
976 vmcb12->save.cpl = vmcb02->save.cpl; in nested_svm_vmexit()
978 vmcb12->control.int_state = vmcb02->control.int_state; in nested_svm_vmexit()
979 vmcb12->control.exit_code = vmcb02->control.exit_code; in nested_svm_vmexit()
980 vmcb12->control.exit_code_hi = vmcb02->control.exit_code_hi; in nested_svm_vmexit()
981 vmcb12->control.exit_info_1 = vmcb02->control.exit_info_1; in nested_svm_vmexit()
982 vmcb12->control.exit_info_2 = vmcb02->control.exit_info_2; in nested_svm_vmexit()
984 if (vmcb12->control.exit_code != SVM_EXIT_ERR) in nested_svm_vmexit()
985 nested_save_pending_event_to_vmcb12(svm, vmcb12); in nested_svm_vmexit()
988 vmcb12->control.next_rip = vmcb02->control.next_rip; in nested_svm_vmexit()
990 vmcb12->control.int_ctl = svm->nested.ctl.int_ctl; in nested_svm_vmexit()
991 vmcb12->control.tlb_ctl = svm->nested.ctl.tlb_ctl; in nested_svm_vmexit()
992 vmcb12->control.event_inj = svm->nested.ctl.event_inj; in nested_svm_vmexit()
993 vmcb12->control.event_inj_err = svm->nested.ctl.event_inj_err; in nested_svm_vmexit()
1006 svm_copy_lbrs(vmcb12, vmcb02); in nested_svm_vmexit()
1048 trace_kvm_nested_vmexit_inject(vmcb12->control.exit_code, in nested_svm_vmexit()
1049 vmcb12->control.exit_info_1, in nested_svm_vmexit()
1050 vmcb12->control.exit_info_2, in nested_svm_vmexit()
1051 vmcb12->control.exit_int_info, in nested_svm_vmexit()
1052 vmcb12->control.exit_int_info_err, in nested_svm_vmexit()