Lines Matching refs:nested_vmcb

2228 	struct vmcb *nested_vmcb;  in nested_svm_vmexit()  local
2240 nested_vmcb = nested_svm_map(svm, svm->nested.vmcb, &page); in nested_svm_vmexit()
2241 if (!nested_vmcb) in nested_svm_vmexit()
2251 nested_vmcb->save.es = vmcb->save.es; in nested_svm_vmexit()
2252 nested_vmcb->save.cs = vmcb->save.cs; in nested_svm_vmexit()
2253 nested_vmcb->save.ss = vmcb->save.ss; in nested_svm_vmexit()
2254 nested_vmcb->save.ds = vmcb->save.ds; in nested_svm_vmexit()
2255 nested_vmcb->save.gdtr = vmcb->save.gdtr; in nested_svm_vmexit()
2256 nested_vmcb->save.idtr = vmcb->save.idtr; in nested_svm_vmexit()
2257 nested_vmcb->save.efer = svm->vcpu.arch.efer; in nested_svm_vmexit()
2258 nested_vmcb->save.cr0 = kvm_read_cr0(&svm->vcpu); in nested_svm_vmexit()
2259 nested_vmcb->save.cr3 = kvm_read_cr3(&svm->vcpu); in nested_svm_vmexit()
2260 nested_vmcb->save.cr2 = vmcb->save.cr2; in nested_svm_vmexit()
2261 nested_vmcb->save.cr4 = svm->vcpu.arch.cr4; in nested_svm_vmexit()
2262 nested_vmcb->save.rflags = kvm_get_rflags(&svm->vcpu); in nested_svm_vmexit()
2263 nested_vmcb->save.rip = vmcb->save.rip; in nested_svm_vmexit()
2264 nested_vmcb->save.rsp = vmcb->save.rsp; in nested_svm_vmexit()
2265 nested_vmcb->save.rax = vmcb->save.rax; in nested_svm_vmexit()
2266 nested_vmcb->save.dr7 = vmcb->save.dr7; in nested_svm_vmexit()
2267 nested_vmcb->save.dr6 = vmcb->save.dr6; in nested_svm_vmexit()
2268 nested_vmcb->save.cpl = vmcb->save.cpl; in nested_svm_vmexit()
2270 nested_vmcb->control.int_ctl = vmcb->control.int_ctl; in nested_svm_vmexit()
2271 nested_vmcb->control.int_vector = vmcb->control.int_vector; in nested_svm_vmexit()
2272 nested_vmcb->control.int_state = vmcb->control.int_state; in nested_svm_vmexit()
2273 nested_vmcb->control.exit_code = vmcb->control.exit_code; in nested_svm_vmexit()
2274 nested_vmcb->control.exit_code_hi = vmcb->control.exit_code_hi; in nested_svm_vmexit()
2275 nested_vmcb->control.exit_info_1 = vmcb->control.exit_info_1; in nested_svm_vmexit()
2276 nested_vmcb->control.exit_info_2 = vmcb->control.exit_info_2; in nested_svm_vmexit()
2277 nested_vmcb->control.exit_int_info = vmcb->control.exit_int_info; in nested_svm_vmexit()
2278 nested_vmcb->control.exit_int_info_err = vmcb->control.exit_int_info_err; in nested_svm_vmexit()
2281 nested_vmcb->control.next_rip = vmcb->control.next_rip; in nested_svm_vmexit()
2292 struct vmcb_control_area *nc = &nested_vmcb->control; in nested_svm_vmexit()
2298 nested_vmcb->control.tlb_ctl = 0; in nested_svm_vmexit()
2299 nested_vmcb->control.event_inj = 0; in nested_svm_vmexit()
2300 nested_vmcb->control.event_inj_err = 0; in nested_svm_vmexit()
2304 nested_vmcb->control.int_ctl &= ~V_INTR_MASKING_MASK; in nested_svm_vmexit()
2398 struct vmcb *nested_vmcb; in nested_svm_vmrun() local
2406 nested_vmcb = nested_svm_map(svm, svm->vmcb->save.rax, &page); in nested_svm_vmrun()
2407 if (!nested_vmcb) in nested_svm_vmrun()
2410 if (!nested_vmcb_checks(nested_vmcb)) { in nested_svm_vmrun()
2411 nested_vmcb->control.exit_code = SVM_EXIT_ERR; in nested_svm_vmrun()
2412 nested_vmcb->control.exit_code_hi = 0; in nested_svm_vmrun()
2413 nested_vmcb->control.exit_info_1 = 0; in nested_svm_vmrun()
2414 nested_vmcb->control.exit_info_2 = 0; in nested_svm_vmrun()
2422 nested_vmcb->save.rip, in nested_svm_vmrun()
2423 nested_vmcb->control.int_ctl, in nested_svm_vmrun()
2424 nested_vmcb->control.event_inj, in nested_svm_vmrun()
2425 nested_vmcb->control.nested_ctl); in nested_svm_vmrun()
2427 trace_kvm_nested_intercepts(nested_vmcb->control.intercept_cr & 0xffff, in nested_svm_vmrun()
2428 nested_vmcb->control.intercept_cr >> 16, in nested_svm_vmrun()
2429 nested_vmcb->control.intercept_exceptions, in nested_svm_vmrun()
2430 nested_vmcb->control.intercept); in nested_svm_vmrun()
2465 if (nested_vmcb->control.nested_ctl) { in nested_svm_vmrun()
2467 svm->nested.nested_cr3 = nested_vmcb->control.nested_cr3; in nested_svm_vmrun()
2472 svm->vmcb->save.es = nested_vmcb->save.es; in nested_svm_vmrun()
2473 svm->vmcb->save.cs = nested_vmcb->save.cs; in nested_svm_vmrun()
2474 svm->vmcb->save.ss = nested_vmcb->save.ss; in nested_svm_vmrun()
2475 svm->vmcb->save.ds = nested_vmcb->save.ds; in nested_svm_vmrun()
2476 svm->vmcb->save.gdtr = nested_vmcb->save.gdtr; in nested_svm_vmrun()
2477 svm->vmcb->save.idtr = nested_vmcb->save.idtr; in nested_svm_vmrun()
2478 kvm_set_rflags(&svm->vcpu, nested_vmcb->save.rflags); in nested_svm_vmrun()
2479 svm_set_efer(&svm->vcpu, nested_vmcb->save.efer); in nested_svm_vmrun()
2480 svm_set_cr0(&svm->vcpu, nested_vmcb->save.cr0); in nested_svm_vmrun()
2481 svm_set_cr4(&svm->vcpu, nested_vmcb->save.cr4); in nested_svm_vmrun()
2483 svm->vmcb->save.cr3 = nested_vmcb->save.cr3; in nested_svm_vmrun()
2484 svm->vcpu.arch.cr3 = nested_vmcb->save.cr3; in nested_svm_vmrun()
2486 (void)kvm_set_cr3(&svm->vcpu, nested_vmcb->save.cr3); in nested_svm_vmrun()
2491 svm->vmcb->save.cr2 = svm->vcpu.arch.cr2 = nested_vmcb->save.cr2; in nested_svm_vmrun()
2492 kvm_register_write(&svm->vcpu, VCPU_REGS_RAX, nested_vmcb->save.rax); in nested_svm_vmrun()
2493 kvm_register_write(&svm->vcpu, VCPU_REGS_RSP, nested_vmcb->save.rsp); in nested_svm_vmrun()
2494 kvm_register_write(&svm->vcpu, VCPU_REGS_RIP, nested_vmcb->save.rip); in nested_svm_vmrun()
2497 svm->vmcb->save.rax = nested_vmcb->save.rax; in nested_svm_vmrun()
2498 svm->vmcb->save.rsp = nested_vmcb->save.rsp; in nested_svm_vmrun()
2499 svm->vmcb->save.rip = nested_vmcb->save.rip; in nested_svm_vmrun()
2500 svm->vmcb->save.dr7 = nested_vmcb->save.dr7; in nested_svm_vmrun()
2501 svm->vmcb->save.dr6 = nested_vmcb->save.dr6; in nested_svm_vmrun()
2502 svm->vmcb->save.cpl = nested_vmcb->save.cpl; in nested_svm_vmrun()
2504 svm->nested.vmcb_msrpm = nested_vmcb->control.msrpm_base_pa & ~0x0fffULL; in nested_svm_vmrun()
2505 svm->nested.vmcb_iopm = nested_vmcb->control.iopm_base_pa & ~0x0fffULL; in nested_svm_vmrun()
2508 svm->nested.intercept_cr = nested_vmcb->control.intercept_cr; in nested_svm_vmrun()
2509 svm->nested.intercept_dr = nested_vmcb->control.intercept_dr; in nested_svm_vmrun()
2510 svm->nested.intercept_exceptions = nested_vmcb->control.intercept_exceptions; in nested_svm_vmrun()
2511 svm->nested.intercept = nested_vmcb->control.intercept; in nested_svm_vmrun()
2514 svm->vmcb->control.int_ctl = nested_vmcb->control.int_ctl | V_INTR_MASKING_MASK; in nested_svm_vmrun()
2515 if (nested_vmcb->control.int_ctl & V_INTR_MASKING_MASK) in nested_svm_vmrun()
2529 svm->vmcb->control.lbr_ctl = nested_vmcb->control.lbr_ctl; in nested_svm_vmrun()
2530 svm->vmcb->control.int_vector = nested_vmcb->control.int_vector; in nested_svm_vmrun()
2531 svm->vmcb->control.int_state = nested_vmcb->control.int_state; in nested_svm_vmrun()
2532 svm->vmcb->control.tsc_offset += nested_vmcb->control.tsc_offset; in nested_svm_vmrun()
2533 svm->vmcb->control.event_inj = nested_vmcb->control.event_inj; in nested_svm_vmrun()
2534 svm->vmcb->control.event_inj_err = nested_vmcb->control.event_inj_err; in nested_svm_vmrun()
2574 struct vmcb *nested_vmcb; in vmload_interception() local
2580 nested_vmcb = nested_svm_map(svm, svm->vmcb->save.rax, &page); in vmload_interception()
2581 if (!nested_vmcb) in vmload_interception()
2587 nested_svm_vmloadsave(nested_vmcb, svm->vmcb); in vmload_interception()
2595 struct vmcb *nested_vmcb; in vmsave_interception() local
2601 nested_vmcb = nested_svm_map(svm, svm->vmcb->save.rax, &page); in vmsave_interception()
2602 if (!nested_vmcb) in vmsave_interception()
2608 nested_svm_vmloadsave(svm->vmcb, nested_vmcb); in vmsave_interception()