• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/x86/kvm/

Lines Matching defs:nested

56 #define NESTED_EXIT_DONE	1	/* Exit caused nested vmexit  */
128 struct nested_state nested;
169 static int nested = 1;
170 module_param(nested, int, S_IRUGO);
188 return svm->nested.vmcb;
359 * If we are within a nested VM we'd better #VMEXIT and let the guest
398 /* Use _safe variants to not break nested virtualization */
649 if (nested) {
835 svm->nested.vmcb = 0;
899 svm->nested.hsave = page_address(hsave_page);
904 svm->nested.msrpm = page_address(nested_msrpm_pages);
905 svm_vcpu_init_msrpm(svm->nested.msrpm);
946 __free_page(virt_to_page(svm->nested.hsave));
947 __free_pages(virt_to_page(svm->nested.msrpm), MSRPM_ALLOC_ORDER);
968 svm->nested.hsave->control.tsc_offset += delta;
1174 struct vmcb *hsave = svm->nested.hsave;
1178 vmcb->control.intercept_cr_read |= svm->nested.intercept_cr_read;
1179 vmcb->control.intercept_cr_write |= svm->nested.intercept_cr_write;
1185 struct vmcb *hsave = svm->nested.hsave;
1199 * We are here because we run in nested mode, the host kvm
1214 svm->nested.vmexit_rip = kvm_rip_read(vcpu);
1215 svm->nested.vmexit_rsp = kvm_register_read(vcpu, VCPU_REGS_RSP);
1216 svm->nested.vmexit_rax = kvm_register_read(vcpu, VCPU_REGS_RAX);
1435 h_excp = svm->nested.hsave->control.intercept_exceptions;
1436 n_excp = svm->nested.intercept_exceptions;
1623 svm->nested.exit_required = true;
1644 if (svm->nested.intercept & 1ULL) {
1651 svm->nested.exit_required = true;
1665 if (!(svm->nested.intercept & (1ULL << INTERCEPT_NMI)))
1669 svm->nested.exit_required = true;
1707 if (!(svm->nested.intercept & (1ULL << INTERCEPT_IOIO_PROT)))
1711 gpa = svm->nested.vmcb_iopm + (port / 8);
1726 if (!(svm->nested.intercept & (1ULL << INTERCEPT_MSR_PROT)))
1740 if (kvm_read_guest(svm->vcpu.kvm, svm->nested.vmcb_msrpm + offset, &value, 4))
1792 if (svm->nested.intercept_cr_read & cr_bits)
1798 if (svm->nested.intercept_cr_write & cr_bits)
1804 if (svm->nested.intercept_dr_read & dr_bits)
1810 if (svm->nested.intercept_dr_write & dr_bits)
1816 if (svm->nested.intercept_exceptions & excp_bits)
1826 if (svm->nested.intercept & exit_bits)
1881 struct vmcb *hsave = svm->nested.hsave;
1891 nested_vmcb = nested_svm_map(svm, svm->nested.vmcb, &page);
1895 /* Exit nested SVM mode */
1896 svm->nested.vmcb = 0;
1994 * nested vmcb. It is omptimized in that it only merges the parts where
1999 if (!(svm->nested.intercept & (1ULL << INTERCEPT_MSR_PROT)))
2010 offset = svm->nested.vmcb_msrpm + (p * 4);
2015 svm->nested.msrpm[p] = svm->msrpm[p] | value;
2018 svm->vmcb->control.msrpm_base_pa = __pa(svm->nested.msrpm);
2026 struct vmcb *hsave = svm->nested.hsave;
2081 /* Load the nested guest state */
2114 svm->nested.vmcb_msrpm = nested_vmcb->control.msrpm_base_pa & ~0x0fffULL;
2115 svm->nested.vmcb_iopm = nested_vmcb->control.iopm_base_pa & ~0x0fffULL;
2118 svm->nested.intercept_cr_read = nested_vmcb->control.intercept_cr_read;
2119 svm->nested.intercept_cr_write = nested_vmcb->control.intercept_cr_write;
2120 svm->nested.intercept_dr_read = nested_vmcb->control.intercept_dr_read;
2121 svm->nested.intercept_dr_write = nested_vmcb->control.intercept_dr_write;
2122 svm->nested.intercept_exceptions = nested_vmcb->control.intercept_exceptions;
2123 svm->nested.intercept = nested_vmcb->control.intercept;
2138 /* We don't want to see VMMCALLs from a nested guest */
2142 * We don't want a nested guest to be more powerful than the guest, so
2167 /* nested_vmcb is our indicator if nested SVM is activated */
2168 svm->nested.vmcb = vmcb_gpa;
2417 if (svm->nested.vmexit_rip) {
2418 kvm_register_write(vcpu, VCPU_REGS_RIP, svm->nested.vmexit_rip);
2419 kvm_register_write(vcpu, VCPU_REGS_RSP, svm->nested.vmexit_rsp);
2420 kvm_register_write(vcpu, VCPU_REGS_RAX, svm->nested.vmexit_rax);
2421 svm->nested.vmexit_rip = 0;
2453 tsc_offset = svm->nested.hsave->control.tsc_offset;
2507 *data = svm->nested.hsave_msr;
2510 *data = svm->nested.vm_cr_msr;
2550 if (svm->nested.vm_cr_msr & SVM_VM_CR_SVM_DIS_MASK)
2553 svm->nested.vm_cr_msr &= ~chg_mask;
2554 svm->nested.vm_cr_msr |= (data & chg_mask);
2556 svm_dis = svm->nested.vm_cr_msr & SVM_VM_CR_SVM_DIS_MASK;
2576 svm->nested.hsave->control.tsc_offset;
2577 svm->nested.hsave->control.tsc_offset = tsc_offset;
2628 svm->nested.hsave_msr = data;
2861 if (unlikely(svm->nested.exit_required)) {
2863 svm->nested.exit_required = false;
3182 if (unlikely(svm->nested.exit_required))
3386 if (nested)
3392 ASID emulation to nested SVM */
3474 svm->nested.hsave->control.intercept_exceptions |= 1 << NM_VECTOR;