/linux/arch/x86/kvm/svm/ |
H A D | svm.c | 299 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_efer() local 314 svm_set_gif(svm, true); in svm_set_efer() 317 clr_exception_intercept(svm, GP_VECTOR); in svm_set_efer() 325 svm_free_nested(svm); in svm_set_efer() 328 int ret = svm_allocate_nested(svm); in svm_set_efer() 340 set_exception_intercept(svm, GP_VECTOR); in svm_set_efer() 344 svm->vmcb->save.efer = efer | EFER_SVME; in svm_set_efer() 345 vmcb_mark_dirty(svm->vmcb, VMCB_CR); in svm_set_efer() 351 struct vcpu_svm *svm = to_svm(vcpu); in svm_get_interrupt_shadow() local 354 if (svm->vmcb->control.int_state & SVM_INTERRUPT_SHADOW_MASK) in svm_get_interrupt_shadow() [all …]
|
H A D | svm.h | 349 void recalc_intercepts(struct vcpu_svm *svm); 388 static inline bool ghcb_gpa_is_registered(struct vcpu_svm *svm, u64 val) in ghcb_gpa_is_registered() argument 390 return svm->sev_es.ghcb_registered_gpa == val; in ghcb_gpa_is_registered() 453 static inline void set_exception_intercept(struct vcpu_svm *svm, u32 bit) in set_exception_intercept() argument 455 struct vmcb *vmcb = svm->vmcb01.ptr; in set_exception_intercept() 460 recalc_intercepts(svm); in set_exception_intercept() 463 static inline void clr_exception_intercept(struct vcpu_svm *svm, u32 bit) in clr_exception_intercept() argument 465 struct vmcb *vmcb = svm->vmcb01.ptr; in clr_exception_intercept() 470 recalc_intercepts(svm); in clr_exception_intercept() 473 static inline void svm_set_intercept(struct vcpu_svm *svm, int bit) in svm_set_intercept() argument [all …]
|
H A D | avic.c | 85 static void avic_activate_vmcb(struct vcpu_svm *svm) in avic_activate_vmcb() argument 87 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_activate_vmcb() 101 if (x2avic_enabled && apic_x2apic_mode(svm->vcpu.arch.apic)) { in avic_activate_vmcb() 105 svm_set_x2apic_msr_interception(svm, false); in avic_activate_vmcb() 111 kvm_make_request(KVM_REQ_TLB_FLUSH_CURRENT, &svm->vcpu); in avic_activate_vmcb() 116 svm_set_x2apic_msr_interception(svm, true); in avic_activate_vmcb() 120 static void avic_deactivate_vmcb(struct vcpu_svm *svm) in avic_deactivate_vmcb() argument 122 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_deactivate_vmcb() 131 if (is_guest_mode(&svm->vcpu) && in avic_deactivate_vmcb() 132 vmcb12_is_intercept(&svm->nested.ctl, INTERCEPT_MSR_PROT)) in avic_deactivate_vmcb() [all …]
|
H A D | sev.c | 140 static bool sev_vcpu_has_debug_swap(struct vcpu_svm *svm) in sev_vcpu_has_debug_swap() argument 142 struct kvm_vcpu *vcpu = &svm->vcpu; in sev_vcpu_has_debug_swap() 802 static int sev_es_sync_vmsa(struct vcpu_svm *svm) in sev_es_sync_vmsa() argument 804 struct kvm_vcpu *vcpu = &svm->vcpu; in sev_es_sync_vmsa() 806 struct sev_es_save_area *save = svm->sev_es.vmsa; in sev_es_sync_vmsa() 813 if (svm->vcpu.guest_debug || (svm->vmcb->save.dr7 & ~DR7_FIXED_1)) in sev_es_sync_vmsa() 822 memcpy(save, &svm->vmcb->save, sizeof(svm->vmcb->save)); in sev_es_sync_vmsa() 825 save->rax = svm->vcpu.arch.regs[VCPU_REGS_RAX]; in sev_es_sync_vmsa() 826 save->rbx = svm->vcpu.arch.regs[VCPU_REGS_RBX]; in sev_es_sync_vmsa() 827 save->rcx = svm->vcpu.arch.regs[VCPU_REGS_RCX]; in sev_es_sync_vmsa() [all …]
|
H A D | hyperv.c | 11 struct vcpu_svm *svm = to_svm(vcpu); in svm_hv_inject_synthetic_vmexit_post_tlb_flush() local 13 svm->vmcb->control.exit_code = HV_SVM_EXITCODE_ENL; in svm_hv_inject_synthetic_vmexit_post_tlb_flush() 14 svm->vmcb->control.exit_code_hi = 0; in svm_hv_inject_synthetic_vmexit_post_tlb_flush() 15 svm->vmcb->control.exit_info_1 = HV_SVM_ENL_EXITCODE_TRAP_AFTER_FLUSH; in svm_hv_inject_synthetic_vmexit_post_tlb_flush() 16 svm->vmcb->control.exit_info_2 = 0; in svm_hv_inject_synthetic_vmexit_post_tlb_flush() 17 nested_svm_vmexit(svm); in svm_hv_inject_synthetic_vmexit_post_tlb_flush()
|
H A D | hyperv.h | 17 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_hv_update_vm_vp_ids() local 18 struct hv_vmcb_enlightenments *hve = &svm->nested.ctl.hv_enlightenments; in nested_svm_hv_update_vm_vp_ids() 31 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_l2_tlb_flush_enabled() local 32 struct hv_vmcb_enlightenments *hve = &svm->nested.ctl.hv_enlightenments; in nested_svm_l2_tlb_flush_enabled()
|
/linux/tools/testing/selftests/kvm/lib/x86_64/ |
H A D | svm.c |
|
/linux/drivers/gpu/drm/nouveau/ |
H A D | nouveau_svm.c | 94 nouveau_ivmm_find(struct nouveau_svm *svm, u64 inst) in nouveau_ivmm_find() argument 97 list_for_each_entry(ivmm, &svm->inst, head) { in nouveau_ivmm_find() 169 if (!cli->svm.svmm) { in nouveau_svmm_bind() 186 nouveau_dmem_migrate_vma(cli->drm, cli->svm.svmm, vma, addr, in nouveau_svmm_bind() 210 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part() 211 ivmm = nouveau_ivmm_find(svmm->vmm->cli->drm->svm, inst); in nouveau_svmm_part() 216 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part() 231 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join() 232 list_add(&ivmm->head, &svmm->vmm->cli->drm->svm->inst); in nouveau_svmm_join() 233 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join() [all …]
|
H A D | nouveau_drv.h | 94 struct nouveau_vmm svm; member 150 if (cli->svm.cli) in nouveau_cli_vmm() 151 return &cli->svm; in nouveau_cli_vmm() 300 struct nouveau_svm *svm; member
|
/linux/tools/testing/selftests/kvm/x86_64/ |
H A D | hyperv_svm_test.c |
|
H A D | nested_exceptions_test.c |
|
H A D | svm_nested_shutdown_test.c |
|
H A D | svm_vmcall_test.c |
|
H A D | svm_int_ctl_test.c |
|
H A D | smm_test.c |
|
H A D | triple_fault_event_test.c |
|
H A D | svm_nested_soft_inject_test.c |
|
/linux/tools/testing/selftests/kvm/x86/ |
H A D | nested_exceptions_test.c | 74 static void svm_run_l2(struct svm_test_data *svm, void *l2_code, int vector, in svm_run_l2() argument 77 struct vmcb *vmcb = svm->vmcb; in svm_run_l2() 81 run_guest(vmcb, svm->vmcb_gpa); in svm_run_l2() 91 static void l1_svm_code(struct svm_test_data *svm) in l1_svm_code() argument 93 struct vmcb_control_area *ctrl = &svm->vmcb->control; in l1_svm_code() 96 generic_svm_setup(svm, NULL, &l2_guest_stack[L2_GUEST_STACK_SIZE]); in l1_svm_code() 97 svm->vmcb->save.idtr.limit = 0; in l1_svm_code() 101 svm_run_l2(svm, l2_ss_pending_test, SS_VECTOR, SS_ERROR_CODE); in l1_svm_code() 102 svm_run_l2(svm, l2_ss_injected_gp_test, GP_VECTOR, GP_ERROR_CODE_AMD); in l1_svm_code() 105 svm_run_l2(svm, l2_ss_injected_df_test, DF_VECTOR, DF_ERROR_CODE); in l1_svm_code() [all …]
|
/linux/tools/testing/vsock/ |
H A D | vsock_perf.c | 104 struct sockaddr_vm svm; in vsock_connect() member 106 .svm = { in vsock_connect() 121 if (connect(fd, &addr.sa, sizeof(addr.svm)) < 0) { in vsock_connect() 147 struct sockaddr_vm svm; in run_receiver() member 149 .svm = { in run_receiver() 157 struct sockaddr_vm svm; in run_receiver() member 160 socklen_t clientaddr_len = sizeof(clientaddr.svm); in run_receiver() 173 if (bind(fd, &addr.sa, sizeof(addr.svm)) < 0) in run_receiver()
|
H A D | vsock_diag_test.c | 343 struct sockaddr_vm svm; in test_listen_socket_server() member 345 .svm = { in test_listen_socket_server() 357 if (bind(fd, &addr.sa, sizeof(addr.svm)) < 0) { in test_listen_socket_server()
|
H A D | util.c | 214 struct sockaddr_vm svm; in vsock_accept() member 216 socklen_t clientaddr_len = sizeof(clientaddr.svm); in vsock_accept() 237 if (clientaddr_len != sizeof(clientaddr.svm)) { in vsock_accept() 249 *clientaddrp = clientaddr.svm; in vsock_accept()
|
/linux/arch/x86/virt/ |
H A D | Makefile | 2 obj-y += svm/ vmx/
|
/linux/tools/testing/selftests/kvm/include/x86_64/ |
H A D | svm_util.h |
|
/linux/arch/arm/mm/ |
H A D | mm.h | 75 extern __init void add_static_vm_early(struct static_vm *svm);
|
/linux/arch/powerpc/platforms/pseries/ |
H A D | Makefile | 28 obj-$(CONFIG_PPC_SVM) += svm.o
|