Lines Matching refs:save

83 	kvm_init_shadow_npt_mmu(vcpu, X86_CR0_PG, hsave->save.cr4, hsave->save.efer,  in nested_svm_init_mmu_context()
232 if ((vmcb12->save.efer & EFER_SVME) == 0) in nested_vmcb_checks()
235 if (((vmcb12->save.cr0 & X86_CR0_CD) == 0) && (vmcb12->save.cr0 & X86_CR0_NW)) in nested_vmcb_checks()
238 if (!kvm_dr6_valid(vmcb12->save.dr6) || !kvm_dr7_valid(vmcb12->save.dr7)) in nested_vmcb_checks()
241 vmcb12_lma = (vmcb12->save.efer & EFER_LME) && (vmcb12->save.cr0 & X86_CR0_PG); in nested_vmcb_checks()
244 if (vmcb12->save.cr4 & X86_CR4_PAE) { in nested_vmcb_checks()
245 if (vmcb12->save.cr3 & MSR_CR3_LEGACY_PAE_RESERVED_MASK) in nested_vmcb_checks()
248 if (vmcb12->save.cr3 & MSR_CR3_LEGACY_RESERVED_MASK) in nested_vmcb_checks()
252 if (!(vmcb12->save.cr4 & X86_CR4_PAE) || in nested_vmcb_checks()
253 !(vmcb12->save.cr0 & X86_CR0_PE) || in nested_vmcb_checks()
254 (vmcb12->save.cr3 & MSR_CR3_LONG_MBZ_MASK)) in nested_vmcb_checks()
257 if (kvm_valid_cr4(&svm->vcpu, vmcb12->save.cr4)) in nested_vmcb_checks()
378 svm->vmcb->save.es = vmcb12->save.es; in nested_prepare_vmcb_save()
379 svm->vmcb->save.cs = vmcb12->save.cs; in nested_prepare_vmcb_save()
380 svm->vmcb->save.ss = vmcb12->save.ss; in nested_prepare_vmcb_save()
381 svm->vmcb->save.ds = vmcb12->save.ds; in nested_prepare_vmcb_save()
382 svm->vmcb->save.gdtr = vmcb12->save.gdtr; in nested_prepare_vmcb_save()
383 svm->vmcb->save.idtr = vmcb12->save.idtr; in nested_prepare_vmcb_save()
384 kvm_set_rflags(&svm->vcpu, vmcb12->save.rflags); in nested_prepare_vmcb_save()
385 svm_set_efer(&svm->vcpu, vmcb12->save.efer); in nested_prepare_vmcb_save()
386 svm_set_cr0(&svm->vcpu, vmcb12->save.cr0); in nested_prepare_vmcb_save()
387 svm_set_cr4(&svm->vcpu, vmcb12->save.cr4); in nested_prepare_vmcb_save()
388 svm->vmcb->save.cr2 = svm->vcpu.arch.cr2 = vmcb12->save.cr2; in nested_prepare_vmcb_save()
389 kvm_rax_write(&svm->vcpu, vmcb12->save.rax); in nested_prepare_vmcb_save()
390 kvm_rsp_write(&svm->vcpu, vmcb12->save.rsp); in nested_prepare_vmcb_save()
391 kvm_rip_write(&svm->vcpu, vmcb12->save.rip); in nested_prepare_vmcb_save()
394 svm->vmcb->save.rax = vmcb12->save.rax; in nested_prepare_vmcb_save()
395 svm->vmcb->save.rsp = vmcb12->save.rsp; in nested_prepare_vmcb_save()
396 svm->vmcb->save.rip = vmcb12->save.rip; in nested_prepare_vmcb_save()
397 svm->vmcb->save.dr7 = vmcb12->save.dr7; in nested_prepare_vmcb_save()
398 svm->vcpu.arch.dr6 = vmcb12->save.dr6; in nested_prepare_vmcb_save()
399 svm->vmcb->save.cpl = vmcb12->save.cpl; in nested_prepare_vmcb_save()
447 ret = nested_svm_load_cr3(&svm->vcpu, vmcb12->save.cr3, in enter_svm_guest_mode()
471 vmcb12_gpa = svm->vmcb->save.rax; in nested_svm_vmrun()
495 trace_kvm_nested_vmrun(svm->vmcb->save.rip, vmcb12_gpa, in nested_svm_vmrun()
496 vmcb12->save.rip, in nested_svm_vmrun()
516 hsave->save.es = vmcb->save.es; in nested_svm_vmrun()
517 hsave->save.cs = vmcb->save.cs; in nested_svm_vmrun()
518 hsave->save.ss = vmcb->save.ss; in nested_svm_vmrun()
519 hsave->save.ds = vmcb->save.ds; in nested_svm_vmrun()
520 hsave->save.gdtr = vmcb->save.gdtr; in nested_svm_vmrun()
521 hsave->save.idtr = vmcb->save.idtr; in nested_svm_vmrun()
522 hsave->save.efer = svm->vcpu.arch.efer; in nested_svm_vmrun()
523 hsave->save.cr0 = kvm_read_cr0(&svm->vcpu); in nested_svm_vmrun()
524 hsave->save.cr4 = svm->vcpu.arch.cr4; in nested_svm_vmrun()
525 hsave->save.rflags = kvm_get_rflags(&svm->vcpu); in nested_svm_vmrun()
526 hsave->save.rip = kvm_rip_read(&svm->vcpu); in nested_svm_vmrun()
527 hsave->save.rsp = vmcb->save.rsp; in nested_svm_vmrun()
528 hsave->save.rax = vmcb->save.rax; in nested_svm_vmrun()
530 hsave->save.cr3 = vmcb->save.cr3; in nested_svm_vmrun()
532 hsave->save.cr3 = kvm_read_cr3(&svm->vcpu); in nested_svm_vmrun()
562 to_vmcb->save.fs = from_vmcb->save.fs; in nested_svm_vmloadsave()
563 to_vmcb->save.gs = from_vmcb->save.gs; in nested_svm_vmloadsave()
564 to_vmcb->save.tr = from_vmcb->save.tr; in nested_svm_vmloadsave()
565 to_vmcb->save.ldtr = from_vmcb->save.ldtr; in nested_svm_vmloadsave()
566 to_vmcb->save.kernel_gs_base = from_vmcb->save.kernel_gs_base; in nested_svm_vmloadsave()
567 to_vmcb->save.star = from_vmcb->save.star; in nested_svm_vmloadsave()
568 to_vmcb->save.lstar = from_vmcb->save.lstar; in nested_svm_vmloadsave()
569 to_vmcb->save.cstar = from_vmcb->save.cstar; in nested_svm_vmloadsave()
570 to_vmcb->save.sfmask = from_vmcb->save.sfmask; in nested_svm_vmloadsave()
571 to_vmcb->save.sysenter_cs = from_vmcb->save.sysenter_cs; in nested_svm_vmloadsave()
572 to_vmcb->save.sysenter_esp = from_vmcb->save.sysenter_esp; in nested_svm_vmloadsave()
573 to_vmcb->save.sysenter_eip = from_vmcb->save.sysenter_eip; in nested_svm_vmloadsave()
603 vmcb12->save.es = vmcb->save.es; in nested_svm_vmexit()
604 vmcb12->save.cs = vmcb->save.cs; in nested_svm_vmexit()
605 vmcb12->save.ss = vmcb->save.ss; in nested_svm_vmexit()
606 vmcb12->save.ds = vmcb->save.ds; in nested_svm_vmexit()
607 vmcb12->save.gdtr = vmcb->save.gdtr; in nested_svm_vmexit()
608 vmcb12->save.idtr = vmcb->save.idtr; in nested_svm_vmexit()
609 vmcb12->save.efer = svm->vcpu.arch.efer; in nested_svm_vmexit()
610 vmcb12->save.cr0 = kvm_read_cr0(&svm->vcpu); in nested_svm_vmexit()
611 vmcb12->save.cr3 = kvm_read_cr3(&svm->vcpu); in nested_svm_vmexit()
612 vmcb12->save.cr2 = vmcb->save.cr2; in nested_svm_vmexit()
613 vmcb12->save.cr4 = svm->vcpu.arch.cr4; in nested_svm_vmexit()
614 vmcb12->save.rflags = kvm_get_rflags(&svm->vcpu); in nested_svm_vmexit()
615 vmcb12->save.rip = kvm_rip_read(&svm->vcpu); in nested_svm_vmexit()
616 vmcb12->save.rsp = kvm_rsp_read(&svm->vcpu); in nested_svm_vmexit()
617 vmcb12->save.rax = kvm_rax_read(&svm->vcpu); in nested_svm_vmexit()
618 vmcb12->save.dr7 = vmcb->save.dr7; in nested_svm_vmexit()
619 vmcb12->save.dr6 = svm->vcpu.arch.dr6; in nested_svm_vmexit()
620 vmcb12->save.cpl = vmcb->save.cpl; in nested_svm_vmexit()
656 svm->vmcb->save.es = hsave->save.es; in nested_svm_vmexit()
657 svm->vmcb->save.cs = hsave->save.cs; in nested_svm_vmexit()
658 svm->vmcb->save.ss = hsave->save.ss; in nested_svm_vmexit()
659 svm->vmcb->save.ds = hsave->save.ds; in nested_svm_vmexit()
660 svm->vmcb->save.gdtr = hsave->save.gdtr; in nested_svm_vmexit()
661 svm->vmcb->save.idtr = hsave->save.idtr; in nested_svm_vmexit()
662 kvm_set_rflags(&svm->vcpu, hsave->save.rflags); in nested_svm_vmexit()
663 svm_set_efer(&svm->vcpu, hsave->save.efer); in nested_svm_vmexit()
664 svm_set_cr0(&svm->vcpu, hsave->save.cr0 | X86_CR0_PE); in nested_svm_vmexit()
665 svm_set_cr4(&svm->vcpu, hsave->save.cr4); in nested_svm_vmexit()
666 kvm_rax_write(&svm->vcpu, hsave->save.rax); in nested_svm_vmexit()
667 kvm_rsp_write(&svm->vcpu, hsave->save.rsp); in nested_svm_vmexit()
668 kvm_rip_write(&svm->vcpu, hsave->save.rip); in nested_svm_vmexit()
669 svm->vmcb->save.dr7 = 0; in nested_svm_vmexit()
670 svm->vmcb->save.cpl = 0; in nested_svm_vmexit()
686 rc = nested_svm_load_cr3(&svm->vcpu, hsave->save.cr3, false); in nested_svm_vmexit()
691 svm->vmcb->save.cr3 = hsave->save.cr3; in nested_svm_vmexit()
875 if (svm->vmcb->save.cpl) { in nested_svm_check_permissions()
944 trace_kvm_nested_intr_vmexit(svm->vmcb->save.rip); in nested_svm_intr()
1101 if (copy_to_user(&user_vmcb->save, &svm->nested.hsave->save, in svm_get_nested_state()
1102 sizeof(user_vmcb->save))) in svm_get_nested_state()
1118 struct vmcb_save_area *save; in svm_set_nested_state() local
1160 save = kzalloc(sizeof(*save), GFP_KERNEL); in svm_set_nested_state()
1161 if (!ctl || !save) in svm_set_nested_state()
1167 if (copy_from_user(save, &user_vmcb->save, sizeof(*save))) in svm_set_nested_state()
1187 if (!(save->cr0 & X86_CR0_PG)) in svm_set_nested_state()
1197 hsave->save = *save; in svm_set_nested_state()
1206 kfree(save); in svm_set_nested_state()