/Linux-v6.1/arch/x86/kvm/svm/ |
D | nested.c | 38 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_inject_npf_exit() local 39 struct vmcb *vmcb = svm->vmcb; in nested_svm_inject_npf_exit() 55 nested_svm_vmexit(svm); in nested_svm_inject_npf_exit() 60 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_get_tdp_pdptr() local 61 u64 cr3 = svm->nested.ctl.nested_cr3; in nested_svm_get_tdp_pdptr() 74 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_get_tdp_cr3() local 76 return svm->nested.ctl.nested_cr3; in nested_svm_get_tdp_cr3() 81 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_init_mmu_context() local 92 kvm_init_shadow_npt_mmu(vcpu, X86_CR0_PG, svm->vmcb01.ptr->save.cr4, in nested_svm_init_mmu_context() 93 svm->vmcb01.ptr->save.efer, in nested_svm_init_mmu_context() [all …]
|
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 …]
|
D | svm.h | 300 void recalc_intercepts(struct vcpu_svm *svm); 389 static inline void set_dr_intercepts(struct vcpu_svm *svm) in set_dr_intercepts() argument 391 struct vmcb *vmcb = svm->vmcb01.ptr; in set_dr_intercepts() 393 if (!sev_es_guest(svm->vcpu.kvm)) { in set_dr_intercepts() 413 recalc_intercepts(svm); in set_dr_intercepts() 416 static inline void clr_dr_intercepts(struct vcpu_svm *svm) in clr_dr_intercepts() argument 418 struct vmcb *vmcb = svm->vmcb01.ptr; in clr_dr_intercepts() 423 if (sev_es_guest(svm->vcpu.kvm)) { in clr_dr_intercepts() 428 recalc_intercepts(svm); in clr_dr_intercepts() 431 static inline void set_exception_intercept(struct vcpu_svm *svm, u32 bit) in set_exception_intercept() argument [all …]
|
D | avic.c | 66 static void avic_activate_vmcb(struct vcpu_svm *svm) in avic_activate_vmcb() argument 68 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_activate_vmcb() 82 if (apic_x2apic_mode(svm->vcpu.arch.apic) && in avic_activate_vmcb() 87 svm_set_x2apic_msr_interception(svm, false); in avic_activate_vmcb() 92 svm_set_x2apic_msr_interception(svm, true); in avic_activate_vmcb() 96 static void avic_deactivate_vmcb(struct vcpu_svm *svm) in avic_deactivate_vmcb() argument 98 struct vmcb *vmcb = svm->vmcb01.ptr; in avic_deactivate_vmcb() 107 if (is_guest_mode(&svm->vcpu) && in avic_deactivate_vmcb() 108 vmcb12_is_intercept(&svm->nested.ctl, INTERCEPT_MSR_PROT)) in avic_deactivate_vmcb() 112 svm_set_x2apic_msr_interception(svm, true); in avic_deactivate_vmcb() [all …]
|
D | sev.c | 564 static int sev_es_sync_vmsa(struct vcpu_svm *svm) in sev_es_sync_vmsa() argument 566 struct sev_es_save_area *save = svm->sev_es.vmsa; in sev_es_sync_vmsa() 569 if (svm->vcpu.guest_debug || (svm->vmcb->save.dr7 & ~DR7_FIXED_1)) in sev_es_sync_vmsa() 578 memcpy(save, &svm->vmcb->save, sizeof(svm->vmcb->save)); in sev_es_sync_vmsa() 581 save->rax = svm->vcpu.arch.regs[VCPU_REGS_RAX]; in sev_es_sync_vmsa() 582 save->rbx = svm->vcpu.arch.regs[VCPU_REGS_RBX]; in sev_es_sync_vmsa() 583 save->rcx = svm->vcpu.arch.regs[VCPU_REGS_RCX]; in sev_es_sync_vmsa() 584 save->rdx = svm->vcpu.arch.regs[VCPU_REGS_RDX]; in sev_es_sync_vmsa() 585 save->rsp = svm->vcpu.arch.regs[VCPU_REGS_RSP]; in sev_es_sync_vmsa() 586 save->rbp = svm->vcpu.arch.regs[VCPU_REGS_RBP]; in sev_es_sync_vmsa() [all …]
|
/Linux-v6.1/tools/testing/selftests/kvm/lib/x86_64/ |
D | svm.c | 35 struct svm_test_data *svm = addr_gva2hva(vm, svm_gva); in vcpu_alloc_svm() local 37 svm->vmcb = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_svm() 38 svm->vmcb_hva = addr_gva2hva(vm, (uintptr_t)svm->vmcb); in vcpu_alloc_svm() 39 svm->vmcb_gpa = addr_gva2gpa(vm, (uintptr_t)svm->vmcb); in vcpu_alloc_svm() 41 svm->save_area = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_svm() 42 svm->save_area_hva = addr_gva2hva(vm, (uintptr_t)svm->save_area); in vcpu_alloc_svm() 43 svm->save_area_gpa = addr_gva2gpa(vm, (uintptr_t)svm->save_area); in vcpu_alloc_svm() 45 svm->msr = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_svm() 46 svm->msr_hva = addr_gva2hva(vm, (uintptr_t)svm->msr); in vcpu_alloc_svm() 47 svm->msr_gpa = addr_gva2gpa(vm, (uintptr_t)svm->msr); in vcpu_alloc_svm() [all …]
|
/Linux-v6.1/drivers/gpu/drm/nouveau/ |
D | nouveau_svm.c | 93 nouveau_ivmm_find(struct nouveau_svm *svm, u64 inst) in nouveau_ivmm_find() argument 96 list_for_each_entry(ivmm, &svm->inst, head) { in nouveau_ivmm_find() 171 if (!cli->svm.svmm) { in nouveau_svmm_bind() 188 nouveau_dmem_migrate_vma(cli->drm, cli->svm.svmm, vma, addr, in nouveau_svmm_bind() 212 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part() 213 ivmm = nouveau_ivmm_find(svmm->vmm->cli->drm->svm, inst); in nouveau_svmm_part() 218 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part() 233 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join() 234 list_add(&ivmm->head, &svmm->vmm->cli->drm->svm->inst); in nouveau_svmm_join() 235 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join() [all …]
|
D | nouveau_drv.h | 99 struct nouveau_vmm svm; member 221 struct nouveau_svm *svm; member
|
/Linux-v6.1/drivers/iommu/intel/ |
D | svm.c | 52 svm_lookup_device_by_dev(struct intel_svm *svm, struct device *dev) in svm_lookup_device_by_dev() argument 57 list_for_each_entry_rcu(t, &svm->devs, list) { in svm_lookup_device_by_dev() 176 static void __flush_svm_range_dev(struct intel_svm *svm, in __flush_svm_range_dev() argument 186 qi_flush_piotlb(sdev->iommu, sdev->did, svm->pasid, address, pages, ih); in __flush_svm_range_dev() 189 svm->pasid, sdev->qdep, address, in __flush_svm_range_dev() 192 svm->pasid, sdev->qdep); in __flush_svm_range_dev() 196 static void intel_flush_svm_range_dev(struct intel_svm *svm, in intel_flush_svm_range_dev() argument 207 __flush_svm_range_dev(svm, sdev, start, align >> VTD_PAGE_SHIFT, ih); in intel_flush_svm_range_dev() 212 static void intel_flush_svm_range(struct intel_svm *svm, unsigned long address, in intel_flush_svm_range() argument 218 list_for_each_entry_rcu(sdev, &svm->devs, list) in intel_flush_svm_range() [all …]
|
D | Makefile | 7 obj-$(CONFIG_INTEL_IOMMU_SVM) += svm.o
|
/Linux-v6.1/tools/testing/selftests/kvm/x86_64/ |
D | hyperv_svm_test.c | 63 static void __attribute__((__flatten__)) guest_code(struct svm_test_data *svm) in guest_code() argument 66 struct vmcb *vmcb = svm->vmcb; in guest_code() 74 GUEST_ASSERT(svm->vmcb_gpa); in guest_code() 76 generic_svm_setup(svm, l2_guest_code, in guest_code() 80 run_guest(vmcb, svm->vmcb_gpa); in guest_code() 87 set_bit(2 * (MSR_FS_BASE & 0x1fff), svm->msr + 0x800); in guest_code() 88 run_guest(vmcb, svm->vmcb_gpa); in guest_code() 94 run_guest(vmcb, svm->vmcb_gpa); in guest_code() 99 set_bit(2 * (MSR_GS_BASE & 0x1fff), svm->msr + 0x800); in guest_code() 102 run_guest(vmcb, svm->vmcb_gpa); in guest_code() [all …]
|
D | nested_exceptions_test.c | 76 static void svm_run_l2(struct svm_test_data *svm, void *l2_code, int vector, in svm_run_l2() argument 79 struct vmcb *vmcb = svm->vmcb; in svm_run_l2() 83 run_guest(vmcb, svm->vmcb_gpa); in svm_run_l2() 92 static void l1_svm_code(struct svm_test_data *svm) in l1_svm_code() argument 94 struct vmcb_control_area *ctrl = &svm->vmcb->control; in l1_svm_code() 97 generic_svm_setup(svm, NULL, &l2_guest_stack[L2_GUEST_STACK_SIZE]); in l1_svm_code() 98 svm->vmcb->save.idtr.limit = 0; in l1_svm_code() 102 svm_run_l2(svm, l2_ss_pending_test, SS_VECTOR, SS_ERROR_CODE); in l1_svm_code() 103 svm_run_l2(svm, l2_ss_injected_gp_test, GP_VECTOR, GP_ERROR_CODE_AMD); in l1_svm_code() 106 svm_run_l2(svm, l2_ss_injected_df_test, DF_VECTOR, DF_ERROR_CODE); in l1_svm_code() [all …]
|
D | svm_nested_shutdown_test.c | 15 static void l2_guest_code(struct svm_test_data *svm) in l2_guest_code() argument 20 static void l1_guest_code(struct svm_test_data *svm, struct idt_entry *idt) in l1_guest_code() argument 24 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() 26 generic_svm_setup(svm, l2_guest_code, in l1_guest_code() 36 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
|
D | svm_vmcall_test.c | 15 static void l2_guest_code(struct svm_test_data *svm) in l2_guest_code() argument 20 static void l1_guest_code(struct svm_test_data *svm) in l1_guest_code() argument 24 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() 27 generic_svm_setup(svm, l2_guest_code, in l1_guest_code() 30 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
|
D | svm_int_ctl_test.c | 33 static void l2_guest_code(struct svm_test_data *svm) in l2_guest_code() argument 58 static void l1_guest_code(struct svm_test_data *svm) in l1_guest_code() argument 62 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() 67 generic_svm_setup(svm, l2_guest_code, in l1_guest_code() 80 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
|
D | smm_test.c | 72 struct svm_test_data *svm = arg; in guest_code() local 87 generic_svm_setup(svm, l2_guest_code, in guest_code() 103 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code() 104 run_guest(svm->vmcb, svm->vmcb_gpa); in guest_code()
|
D | state_test.c | 35 static void svm_l1_guest_code(struct svm_test_data *svm) in svm_l1_guest_code() argument 38 struct vmcb *vmcb = svm->vmcb; in svm_l1_guest_code() 40 GUEST_ASSERT(svm->vmcb_gpa); in svm_l1_guest_code() 42 generic_svm_setup(svm, svm_l2_guest_code, in svm_l1_guest_code() 46 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code() 50 run_guest(vmcb, svm->vmcb_gpa); in svm_l1_guest_code()
|
D | triple_fault_event_test.c | 43 void l1_guest_code_svm(struct svm_test_data *svm) in l1_guest_code_svm() argument 45 struct vmcb *vmcb = svm->vmcb; in l1_guest_code_svm() 47 generic_svm_setup(svm, l2_guest_code, in l1_guest_code_svm() 53 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code_svm()
|
D | svm_nested_soft_inject_test.c | 72 static void l1_guest_code(struct svm_test_data *svm, uint64_t is_nmi, uint64_t idt_alt) in l1_guest_code() argument 76 struct vmcb *vmcb = svm->vmcb; in l1_guest_code() 82 generic_svm_setup(svm, in l1_guest_code() 97 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code() 126 run_guest(vmcb, svm->vmcb_gpa); in l1_guest_code()
|
/Linux-v6.1/arch/arm/mm/ |
D | ioremap.c | 52 struct static_vm *svm; in find_static_vm_paddr() local 55 list_for_each_entry(svm, &static_vmlist, list) { in find_static_vm_paddr() 56 vm = &svm->vm; in find_static_vm_paddr() 66 return svm; in find_static_vm_paddr() 74 struct static_vm *svm; in find_static_vm_vaddr() local 77 list_for_each_entry(svm, &static_vmlist, list) { in find_static_vm_vaddr() 78 vm = &svm->vm; in find_static_vm_vaddr() 85 return svm; in find_static_vm_vaddr() 91 void __init add_static_vm_early(struct static_vm *svm) in add_static_vm_early() argument 97 vm = &svm->vm; in add_static_vm_early() [all …]
|
D | mmu.c | 1024 struct static_vm *svm; in iotable_init() local 1029 svm = memblock_alloc(sizeof(*svm) * nr, __alignof__(*svm)); in iotable_init() 1030 if (!svm) in iotable_init() 1032 __func__, sizeof(*svm) * nr, __alignof__(*svm)); in iotable_init() 1037 vm = &svm->vm; in iotable_init() 1044 add_static_vm_early(svm++); in iotable_init() 1052 struct static_vm *svm; in vm_reserve_area_early() local 1054 svm = memblock_alloc(sizeof(*svm), __alignof__(*svm)); in vm_reserve_area_early() 1055 if (!svm) in vm_reserve_area_early() 1057 __func__, sizeof(*svm), __alignof__(*svm)); in vm_reserve_area_early() [all …]
|
/Linux-v6.1/arch/x86/kvm/ |
D | Makefile | 28 kvm-amd-y += svm/svm.o svm/vmenter.o svm/pmu.o svm/nested.o svm/avic.o svm/sev.o 31 kvm-amd-y += svm/svm_onhyperv.o 39 $(obj)/svm/vmenter.o: $(obj)/kvm-asm-offsets.h
|
/Linux-v6.1/tools/testing/vsock/ |
D | util.c | 91 struct sockaddr_vm svm; in vsock_connect() member 93 .svm = { in vsock_connect() 108 ret = connect(fd, &addr.sa, sizeof(addr.svm)); in vsock_connect() 141 struct sockaddr_vm svm; in vsock_accept() member 143 .svm = { in vsock_accept() 151 struct sockaddr_vm svm; in vsock_accept() member 153 socklen_t clientaddr_len = sizeof(clientaddr.svm); in vsock_accept() 160 if (bind(fd, &addr.sa, sizeof(addr.svm)) < 0) { in vsock_accept() 186 if (clientaddr_len != sizeof(clientaddr.svm)) { in vsock_accept() 198 *clientaddrp = clientaddr.svm; in vsock_accept()
|
D | vsock_test.c | 31 struct sockaddr_vm svm; in test_stream_connection_reset() member 33 .svm = { in test_stream_connection_reset() 46 ret = connect(fd, &addr.sa, sizeof(addr.svm)); in test_stream_connection_reset() 67 struct sockaddr_vm svm; in test_stream_bind_only_client() member 69 .svm = { in test_stream_bind_only_client() 85 ret = connect(fd, &addr.sa, sizeof(addr.svm)); in test_stream_bind_only_client() 109 struct sockaddr_vm svm; in test_stream_bind_only_server() member 111 .svm = { in test_stream_bind_only_server() 121 if (bind(fd, &addr.sa, sizeof(addr.svm)) < 0) { in test_stream_bind_only_server()
|
/Linux-v6.1/tools/testing/selftests/kvm/include/x86_64/ |
D | svm_util.h | 46 void generic_svm_setup(struct svm_test_data *svm, void *guest_rip, void *guest_rsp);
|