Lines Matching +full:fw +full:- +full:cfg +full:- +full:mmio

1 // SPDX-License-Identifier: GPL-2.0-only
52 return !!(v->arch.pending_exceptions) || kvm_request_pending(v); in kvm_arch_vcpu_runnable()
96 vcpu->run->exit_reason = KVM_EXIT_INTR; in kvmppc_prepare_to_enter()
97 r = -EINTR; in kvmppc_prepare_to_enter()
101 vcpu->mode = IN_GUEST_MODE; in kvmppc_prepare_to_enter()
104 * Reading vcpu->requests must happen after setting vcpu->mode, in kvmppc_prepare_to_enter()
144 struct kvm_vcpu_arch_shared *shared = vcpu->arch.shared; in kvmppc_swab_shared()
147 shared->sprg0 = swab64(shared->sprg0); in kvmppc_swab_shared()
148 shared->sprg1 = swab64(shared->sprg1); in kvmppc_swab_shared()
149 shared->sprg2 = swab64(shared->sprg2); in kvmppc_swab_shared()
150 shared->sprg3 = swab64(shared->sprg3); in kvmppc_swab_shared()
151 shared->srr0 = swab64(shared->srr0); in kvmppc_swab_shared()
152 shared->srr1 = swab64(shared->srr1); in kvmppc_swab_shared()
153 shared->dar = swab64(shared->dar); in kvmppc_swab_shared()
154 shared->msr = swab64(shared->msr); in kvmppc_swab_shared()
155 shared->dsisr = swab32(shared->dsisr); in kvmppc_swab_shared()
156 shared->int_pending = swab32(shared->int_pending); in kvmppc_swab_shared()
157 for (i = 0; i < ARRAY_SIZE(shared->sr); i++) in kvmppc_swab_shared()
158 shared->sr[i] = swab32(shared->sr[i]); in kvmppc_swab_shared()
186 if (vcpu->arch.intr_msr & MSR_LE) in kvmppc_kvm_pv()
188 if (shared_big_endian != vcpu->arch.shared_big_endian) in kvmppc_kvm_pv()
190 vcpu->arch.shared_big_endian = shared_big_endian; in kvmppc_kvm_pv()
199 vcpu->arch.disable_kernel_nx = true; in kvmppc_kvm_pv()
203 vcpu->arch.magic_page_pa = param1 & ~0xfffULL; in kvmppc_kvm_pv()
204 vcpu->arch.magic_page_ea = param2 & ~0xfffULL; in kvmppc_kvm_pv()
211 if ((vcpu->arch.magic_page_pa & 0xf000) != in kvmppc_kvm_pv()
212 ((ulong)vcpu->arch.shared & 0xf000)) { in kvmppc_kvm_pv()
213 void *old_shared = vcpu->arch.shared; in kvmppc_kvm_pv()
214 ulong shared = (ulong)vcpu->arch.shared; in kvmppc_kvm_pv()
218 shared |= vcpu->arch.magic_page_pa & 0xf000; in kvmppc_kvm_pv()
221 vcpu->arch.shared = new_shared; in kvmppc_kvm_pv()
258 if (!vcpu->arch.pvr) in kvmppc_sanity_check()
262 if ((vcpu->arch.cpu_type != KVM_CPU_3S_64) && vcpu->arch.papr_enabled) in kvmppc_sanity_check()
266 if (!vcpu->arch.papr_enabled && is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_sanity_check()
277 vcpu->arch.sane = r; in kvmppc_sanity_check()
278 return r ? 0 : -EINVAL; in kvmppc_sanity_check()
290 /* Future optimization: only reload non-volatiles if they were in kvmppc_emulate_mmio()
298 vcpu->run->exit_reason = KVM_EXIT_MMIO; in kvmppc_emulate_mmio()
301 /* Future optimization: only reload non-volatiles if they were in kvmppc_emulate_mmio()
321 if (vcpu->mmio_is_write) in kvmppc_emulate_mmio()
326 vcpu->arch.vaddr_accessed, dsisr); in kvmppc_emulate_mmio()
351 ulong mp_pa = vcpu->arch.magic_page_pa & KVM_PAM & PAGE_MASK; in kvmppc_st()
353 int r = -EINVAL; in kvmppc_st()
355 vcpu->stat.st++; in kvmppc_st()
357 if (vcpu->kvm->arch.kvm_ops && vcpu->kvm->arch.kvm_ops->store_to_eaddr) in kvmppc_st()
358 r = vcpu->kvm->arch.kvm_ops->store_to_eaddr(vcpu, eaddr, ptr, in kvmppc_st()
361 if ((!r) || (r == -EAGAIN)) in kvmppc_st()
372 return -EPERM; in kvmppc_st()
378 void *magic = vcpu->arch.shared; in kvmppc_st()
384 if (kvm_write_guest(vcpu->kvm, pte.raddr, ptr, size)) in kvmppc_st()
394 ulong mp_pa = vcpu->arch.magic_page_pa & KVM_PAM & PAGE_MASK; in kvmppc_ld()
396 int rc = -EINVAL; in kvmppc_ld()
398 vcpu->stat.ld++; in kvmppc_ld()
400 if (vcpu->kvm->arch.kvm_ops && vcpu->kvm->arch.kvm_ops->load_from_eaddr) in kvmppc_ld()
401 rc = vcpu->kvm->arch.kvm_ops->load_from_eaddr(vcpu, eaddr, ptr, in kvmppc_ld()
404 if ((!rc) || (rc == -EAGAIN)) in kvmppc_ld()
415 return -EPERM; in kvmppc_ld()
418 return -ENOEXEC; in kvmppc_ld()
424 void *magic = vcpu->arch.shared; in kvmppc_ld()
431 rc = kvm_read_guest(vcpu->kvm, pte.raddr, ptr, size); in kvmppc_ld()
466 if (!try_module_get(kvm_ops->owner)) in kvm_arch_init_vm()
467 return -ENOENT; in kvm_arch_init_vm()
469 kvm->arch.kvm_ops = kvm_ops; in kvm_arch_init_vm()
472 module_put(kvm_ops->owner); in kvm_arch_init_vm()
475 return -EINVAL; in kvm_arch_init_vm()
492 mutex_lock(&kvm->lock); in kvm_arch_destroy_vm()
496 mutex_unlock(&kvm->lock); in kvm_arch_destroy_vm()
499 module_put(kvm->arch.kvm_ops->owner); in kvm_arch_destroy_vm()
510 * Hooray - we know which VM type we're running on. Depend on in kvm_vm_ioctl_check_extension()
595 if (kvm->arch.emul_smt_mode > 1) in kvm_vm_ioctl_check_extension()
596 r = kvm->arch.emul_smt_mode; in kvm_vm_ioctl_check_extension()
598 r = kvm->arch.smt_mode; in kvm_vm_ioctl_check_extension()
610 r = ((threads_per_subcore << 1) - 1); in kvm_vm_ioctl_check_extension()
626 r = !!(hv_enabled && kvmppc_hv_ops->hash_v3_possible && in kvm_vm_ioctl_check_extension()
627 kvmppc_hv_ops->hash_v3_possible()); in kvm_vm_ioctl_check_extension()
630 r = !!(hv_enabled && kvmppc_hv_ops->enable_nested && in kvm_vm_ioctl_check_extension()
631 !kvmppc_hv_ops->enable_nested(NULL)); in kvm_vm_ioctl_check_extension()
651 * return the number of present CPUs for -HV (since a host in kvm_vm_ioctl_check_extension()
684 r = !!(cur_cpu_spec->cpu_user_features2 & PPC_FEATURE2_HTM) || in kvm_vm_ioctl_check_extension()
690 r = hv_enabled && kvmppc_hv_ops->enable_svm && in kvm_vm_ioctl_check_extension()
691 !kvmppc_hv_ops->enable_svm(NULL); in kvm_vm_ioctl_check_extension()
694 r = !!(hv_enabled && kvmppc_hv_ops->enable_dawr1 && in kvm_vm_ioctl_check_extension()
695 !kvmppc_hv_ops->enable_dawr1(NULL)); in kvm_vm_ioctl_check_extension()
729 return -EINVAL; in kvm_arch_dev_ioctl()
778 hrtimer_init(&vcpu->arch.dec_timer, CLOCK_REALTIME, HRTIMER_MODE_ABS); in kvm_arch_vcpu_create()
779 vcpu->arch.dec_timer.function = kvmppc_decrementer_wakeup; in kvm_arch_vcpu_create()
782 mutex_init(&vcpu->arch.exit_timing_lock); in kvm_arch_vcpu_create()
792 rcuwait_init(&vcpu->arch.wait); in kvm_arch_vcpu_create()
793 vcpu->arch.waitp = &vcpu->arch.wait; in kvm_arch_vcpu_create()
808 hrtimer_cancel(&vcpu->arch.dec_timer); in kvm_arch_vcpu_destroy()
810 switch (vcpu->arch.irq_type) { in kvm_arch_vcpu_destroy()
812 kvmppc_mpic_disconnect_vcpu(vcpu->arch.mpic, vcpu); in kvm_arch_vcpu_destroy()
842 * On non-booke this is associated with Altivec and in kvm_arch_vcpu_load()
845 mtspr(SPRN_VRSAVE, vcpu->arch.vrsave); in kvm_arch_vcpu_load()
854 vcpu->arch.vrsave = mfspr(SPRN_VRSAVE); in kvm_arch_vcpu_put()
866 return ((kvmppc_hv_ops && kvmppc_hv_ops->irq_bypass_add_producer) || in kvm_arch_has_irq_bypass()
867 (kvmppc_pr_ops && kvmppc_pr_ops->irq_bypass_add_producer)); in kvm_arch_has_irq_bypass()
875 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_add_producer()
877 if (kvm->arch.kvm_ops->irq_bypass_add_producer) in kvm_arch_irq_bypass_add_producer()
878 return kvm->arch.kvm_ops->irq_bypass_add_producer(cons, prod); in kvm_arch_irq_bypass_add_producer()
888 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_del_producer()
890 if (kvm->arch.kvm_ops->irq_bypass_del_producer) in kvm_arch_irq_bypass_del_producer()
891 kvm->arch.kvm_ops->irq_bypass_del_producer(cons, prod); in kvm_arch_irq_bypass_del_producer()
900 return -1; in kvmppc_get_vsr_dword_offset()
905 offset = 1 - index; in kvmppc_get_vsr_dword_offset()
916 return -1; in kvmppc_get_vsr_word_offset()
921 offset = 3 - index; in kvmppc_get_vsr_word_offset()
930 int offset = kvmppc_get_vsr_dword_offset(vcpu->arch.mmio_vsx_offset); in kvmppc_set_vsr_dword()
931 int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK; in kvmppc_set_vsr_dword()
933 if (offset == -1) in kvmppc_set_vsr_dword()
937 val.vval = VCPU_VSX_VR(vcpu, index - 32); in kvmppc_set_vsr_dword()
939 VCPU_VSX_VR(vcpu, index - 32) = val.vval; in kvmppc_set_vsr_dword()
949 int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK; in kvmppc_set_vsr_dword_dump()
952 val.vval = VCPU_VSX_VR(vcpu, index - 32); in kvmppc_set_vsr_dword_dump()
955 VCPU_VSX_VR(vcpu, index - 32) = val.vval; in kvmppc_set_vsr_dword_dump()
966 int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK; in kvmppc_set_vsr_word_dump()
973 VCPU_VSX_VR(vcpu, index - 32) = val.vval; in kvmppc_set_vsr_word_dump()
986 int offset = kvmppc_get_vsr_word_offset(vcpu->arch.mmio_vsx_offset); in kvmppc_set_vsr_word()
987 int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK; in kvmppc_set_vsr_word()
990 if (offset == -1) in kvmppc_set_vsr_word()
994 val.vval = VCPU_VSX_VR(vcpu, index - 32); in kvmppc_set_vsr_word()
996 VCPU_VSX_VR(vcpu, index - 32) = val.vval; in kvmppc_set_vsr_word()
1015 return -1; in kvmppc_get_vmx_offset_generic()
1018 offset = elts - index - 1; in kvmppc_get_vmx_offset_generic()
1055 vcpu->arch.mmio_vmx_offset); in kvmppc_set_vmx_dword()
1056 int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK; in kvmppc_set_vmx_dword()
1058 if (offset == -1) in kvmppc_set_vmx_dword()
1071 vcpu->arch.mmio_vmx_offset); in kvmppc_set_vmx_word()
1072 int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK; in kvmppc_set_vmx_word()
1074 if (offset == -1) in kvmppc_set_vmx_word()
1087 vcpu->arch.mmio_vmx_offset); in kvmppc_set_vmx_hword()
1088 int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK; in kvmppc_set_vmx_hword()
1090 if (offset == -1) in kvmppc_set_vmx_hword()
1103 vcpu->arch.mmio_vmx_offset); in kvmppc_set_vmx_byte()
1104 int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK; in kvmppc_set_vmx_byte()
1106 if (offset == -1) in kvmppc_set_vmx_byte()
1147 struct kvm_run *run = vcpu->run; in kvmppc_complete_mmio_load()
1150 if (run->mmio.len > sizeof(gpr)) in kvmppc_complete_mmio_load()
1153 if (!vcpu->arch.mmio_host_swabbed) { in kvmppc_complete_mmio_load()
1154 switch (run->mmio.len) { in kvmppc_complete_mmio_load()
1155 case 8: gpr = *(u64 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1156 case 4: gpr = *(u32 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1157 case 2: gpr = *(u16 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1158 case 1: gpr = *(u8 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1161 switch (run->mmio.len) { in kvmppc_complete_mmio_load()
1162 case 8: gpr = swab64(*(u64 *)run->mmio.data); break; in kvmppc_complete_mmio_load()
1163 case 4: gpr = swab32(*(u32 *)run->mmio.data); break; in kvmppc_complete_mmio_load()
1164 case 2: gpr = swab16(*(u16 *)run->mmio.data); break; in kvmppc_complete_mmio_load()
1165 case 1: gpr = *(u8 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1170 if ((vcpu->arch.mmio_sp64_extend) && (run->mmio.len == 4)) in kvmppc_complete_mmio_load()
1173 if (vcpu->arch.mmio_sign_extend) { in kvmppc_complete_mmio_load()
1174 switch (run->mmio.len) { in kvmppc_complete_mmio_load()
1189 switch (vcpu->arch.io_gpr & KVM_MMIO_REG_EXT_MASK) { in kvmppc_complete_mmio_load()
1191 kvmppc_set_gpr(vcpu, vcpu->arch.io_gpr, gpr); in kvmppc_complete_mmio_load()
1194 if (vcpu->kvm->arch.kvm_ops->giveup_ext) in kvmppc_complete_mmio_load()
1195 vcpu->kvm->arch.kvm_ops->giveup_ext(vcpu, MSR_FP); in kvmppc_complete_mmio_load()
1197 VCPU_FPR(vcpu, vcpu->arch.io_gpr & KVM_MMIO_REG_MASK) = gpr; in kvmppc_complete_mmio_load()
1201 vcpu->arch.qpr[vcpu->arch.io_gpr & KVM_MMIO_REG_MASK] = gpr; in kvmppc_complete_mmio_load()
1204 VCPU_FPR(vcpu, vcpu->arch.io_gpr & KVM_MMIO_REG_MASK) = gpr; in kvmppc_complete_mmio_load()
1205 vcpu->arch.qpr[vcpu->arch.io_gpr & KVM_MMIO_REG_MASK] = gpr; in kvmppc_complete_mmio_load()
1210 if (vcpu->kvm->arch.kvm_ops->giveup_ext) in kvmppc_complete_mmio_load()
1211 vcpu->kvm->arch.kvm_ops->giveup_ext(vcpu, MSR_VSX); in kvmppc_complete_mmio_load()
1213 if (vcpu->arch.mmio_copy_type == KVMPPC_VSX_COPY_DWORD) in kvmppc_complete_mmio_load()
1215 else if (vcpu->arch.mmio_copy_type == KVMPPC_VSX_COPY_WORD) in kvmppc_complete_mmio_load()
1217 else if (vcpu->arch.mmio_copy_type == in kvmppc_complete_mmio_load()
1220 else if (vcpu->arch.mmio_copy_type == in kvmppc_complete_mmio_load()
1227 if (vcpu->kvm->arch.kvm_ops->giveup_ext) in kvmppc_complete_mmio_load()
1228 vcpu->kvm->arch.kvm_ops->giveup_ext(vcpu, MSR_VEC); in kvmppc_complete_mmio_load()
1230 if (vcpu->arch.mmio_copy_type == KVMPPC_VMX_COPY_DWORD) in kvmppc_complete_mmio_load()
1232 else if (vcpu->arch.mmio_copy_type == KVMPPC_VMX_COPY_WORD) in kvmppc_complete_mmio_load()
1234 else if (vcpu->arch.mmio_copy_type == in kvmppc_complete_mmio_load()
1237 else if (vcpu->arch.mmio_copy_type == in kvmppc_complete_mmio_load()
1246 kvm_vcpu_write_guest(vcpu, vcpu->arch.nested_io_gpr, &gpr, in kvmppc_complete_mmio_load()
1259 struct kvm_run *run = vcpu->run; in __kvmppc_handle_load()
1270 if (bytes > sizeof(run->mmio.data)) in __kvmppc_handle_load()
1273 run->mmio.phys_addr = vcpu->arch.paddr_accessed; in __kvmppc_handle_load()
1274 run->mmio.len = bytes; in __kvmppc_handle_load()
1275 run->mmio.is_write = 0; in __kvmppc_handle_load()
1277 vcpu->arch.io_gpr = rt; in __kvmppc_handle_load()
1278 vcpu->arch.mmio_host_swabbed = host_swabbed; in __kvmppc_handle_load()
1279 vcpu->mmio_needed = 1; in __kvmppc_handle_load()
1280 vcpu->mmio_is_write = 0; in __kvmppc_handle_load()
1281 vcpu->arch.mmio_sign_extend = sign_extend; in __kvmppc_handle_load()
1283 idx = srcu_read_lock(&vcpu->kvm->srcu); in __kvmppc_handle_load()
1285 ret = kvm_io_bus_read(vcpu, KVM_MMIO_BUS, run->mmio.phys_addr, in __kvmppc_handle_load()
1286 bytes, &run->mmio.data); in __kvmppc_handle_load()
1288 srcu_read_unlock(&vcpu->kvm->srcu, idx); in __kvmppc_handle_load()
1292 vcpu->mmio_needed = 0; in __kvmppc_handle_load()
1323 if (vcpu->arch.mmio_vsx_copy_nums > 4) in kvmppc_handle_vsx_load()
1326 while (vcpu->arch.mmio_vsx_copy_nums) { in kvmppc_handle_vsx_load()
1333 vcpu->arch.paddr_accessed += vcpu->run->mmio.len; in kvmppc_handle_vsx_load()
1335 vcpu->arch.mmio_vsx_copy_nums--; in kvmppc_handle_vsx_load()
1336 vcpu->arch.mmio_vsx_offset++; in kvmppc_handle_vsx_load()
1345 struct kvm_run *run = vcpu->run; in kvmppc_handle_store()
1346 void *data = run->mmio.data; in kvmppc_handle_store()
1357 if (bytes > sizeof(run->mmio.data)) in kvmppc_handle_store()
1360 run->mmio.phys_addr = vcpu->arch.paddr_accessed; in kvmppc_handle_store()
1361 run->mmio.len = bytes; in kvmppc_handle_store()
1362 run->mmio.is_write = 1; in kvmppc_handle_store()
1363 vcpu->mmio_needed = 1; in kvmppc_handle_store()
1364 vcpu->mmio_is_write = 1; in kvmppc_handle_store()
1366 if ((vcpu->arch.mmio_sp64_extend) && (bytes == 4)) in kvmppc_handle_store()
1386 idx = srcu_read_lock(&vcpu->kvm->srcu); in kvmppc_handle_store()
1388 ret = kvm_io_bus_write(vcpu, KVM_MMIO_BUS, run->mmio.phys_addr, in kvmppc_handle_store()
1389 bytes, &run->mmio.data); in kvmppc_handle_store()
1391 srcu_read_unlock(&vcpu->kvm->srcu, idx); in kvmppc_handle_store()
1394 vcpu->mmio_needed = 0; in kvmppc_handle_store()
1408 int copy_type = vcpu->arch.mmio_copy_type; in kvmppc_get_vsr_data()
1414 kvmppc_get_vsr_dword_offset(vcpu->arch.mmio_vsx_offset); in kvmppc_get_vsr_data()
1416 if (vsx_offset == -1) { in kvmppc_get_vsr_data()
1417 result = -1; in kvmppc_get_vsr_data()
1424 reg.vval = VCPU_VSX_VR(vcpu, rs - 32); in kvmppc_get_vsr_data()
1431 kvmppc_get_vsr_word_offset(vcpu->arch.mmio_vsx_offset); in kvmppc_get_vsr_data()
1433 if (vsx_offset == -1) { in kvmppc_get_vsr_data()
1434 result = -1; in kvmppc_get_vsr_data()
1444 reg.vval = VCPU_VSX_VR(vcpu, rs - 32); in kvmppc_get_vsr_data()
1450 result = -1; in kvmppc_get_vsr_data()
1463 vcpu->arch.io_gpr = rs; in kvmppc_handle_vsx_store()
1466 if (vcpu->arch.mmio_vsx_copy_nums > 4) in kvmppc_handle_vsx_store()
1469 while (vcpu->arch.mmio_vsx_copy_nums) { in kvmppc_handle_vsx_store()
1470 if (kvmppc_get_vsr_data(vcpu, rs, &val) == -1) in kvmppc_handle_vsx_store()
1479 vcpu->arch.paddr_accessed += vcpu->run->mmio.len; in kvmppc_handle_vsx_store()
1481 vcpu->arch.mmio_vsx_copy_nums--; in kvmppc_handle_vsx_store()
1482 vcpu->arch.mmio_vsx_offset++; in kvmppc_handle_vsx_store()
1490 struct kvm_run *run = vcpu->run; in kvmppc_emulate_mmio_vsx_loadstore()
1494 vcpu->arch.paddr_accessed += run->mmio.len; in kvmppc_emulate_mmio_vsx_loadstore()
1496 if (!vcpu->mmio_is_write) { in kvmppc_emulate_mmio_vsx_loadstore()
1497 emulated = kvmppc_handle_vsx_load(vcpu, vcpu->arch.io_gpr, in kvmppc_emulate_mmio_vsx_loadstore()
1498 run->mmio.len, 1, vcpu->arch.mmio_sign_extend); in kvmppc_emulate_mmio_vsx_loadstore()
1501 vcpu->arch.io_gpr, run->mmio.len, 1); in kvmppc_emulate_mmio_vsx_loadstore()
1506 run->exit_reason = KVM_EXIT_MMIO; in kvmppc_emulate_mmio_vsx_loadstore()
1510 pr_info("KVM: MMIO emulation failed (VSX repeat)\n"); in kvmppc_emulate_mmio_vsx_loadstore()
1511 run->exit_reason = KVM_EXIT_INTERNAL_ERROR; in kvmppc_emulate_mmio_vsx_loadstore()
1512 run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; in kvmppc_emulate_mmio_vsx_loadstore()
1529 if (vcpu->arch.mmio_vmx_copy_nums > 2) in kvmppc_handle_vmx_load()
1532 while (vcpu->arch.mmio_vmx_copy_nums) { in kvmppc_handle_vmx_load()
1539 vcpu->arch.paddr_accessed += vcpu->run->mmio.len; in kvmppc_handle_vmx_load()
1540 vcpu->arch.mmio_vmx_copy_nums--; in kvmppc_handle_vmx_load()
1541 vcpu->arch.mmio_vmx_offset++; in kvmppc_handle_vmx_load()
1554 kvmppc_get_vmx_dword_offset(vcpu, vcpu->arch.mmio_vmx_offset); in kvmppc_get_vmx_dword()
1556 if (vmx_offset == -1) in kvmppc_get_vmx_dword()
1557 return -1; in kvmppc_get_vmx_dword()
1572 kvmppc_get_vmx_word_offset(vcpu, vcpu->arch.mmio_vmx_offset); in kvmppc_get_vmx_word()
1574 if (vmx_offset == -1) in kvmppc_get_vmx_word()
1575 return -1; in kvmppc_get_vmx_word()
1590 kvmppc_get_vmx_hword_offset(vcpu, vcpu->arch.mmio_vmx_offset); in kvmppc_get_vmx_hword()
1592 if (vmx_offset == -1) in kvmppc_get_vmx_hword()
1593 return -1; in kvmppc_get_vmx_hword()
1608 kvmppc_get_vmx_byte_offset(vcpu, vcpu->arch.mmio_vmx_offset); in kvmppc_get_vmx_byte()
1610 if (vmx_offset == -1) in kvmppc_get_vmx_byte()
1611 return -1; in kvmppc_get_vmx_byte()
1626 if (vcpu->arch.mmio_vmx_copy_nums > 2) in kvmppc_handle_vmx_store()
1629 vcpu->arch.io_gpr = rs; in kvmppc_handle_vmx_store()
1631 while (vcpu->arch.mmio_vmx_copy_nums) { in kvmppc_handle_vmx_store()
1632 switch (vcpu->arch.mmio_copy_type) { in kvmppc_handle_vmx_store()
1634 if (kvmppc_get_vmx_dword(vcpu, index, &val) == -1) in kvmppc_handle_vmx_store()
1639 if (kvmppc_get_vmx_word(vcpu, index, &val) == -1) in kvmppc_handle_vmx_store()
1643 if (kvmppc_get_vmx_hword(vcpu, index, &val) == -1) in kvmppc_handle_vmx_store()
1647 if (kvmppc_get_vmx_byte(vcpu, index, &val) == -1) in kvmppc_handle_vmx_store()
1659 vcpu->arch.paddr_accessed += vcpu->run->mmio.len; in kvmppc_handle_vmx_store()
1660 vcpu->arch.mmio_vmx_copy_nums--; in kvmppc_handle_vmx_store()
1661 vcpu->arch.mmio_vmx_offset++; in kvmppc_handle_vmx_store()
1669 struct kvm_run *run = vcpu->run; in kvmppc_emulate_mmio_vmx_loadstore()
1673 vcpu->arch.paddr_accessed += run->mmio.len; in kvmppc_emulate_mmio_vmx_loadstore()
1675 if (!vcpu->mmio_is_write) { in kvmppc_emulate_mmio_vmx_loadstore()
1677 vcpu->arch.io_gpr, run->mmio.len, 1); in kvmppc_emulate_mmio_vmx_loadstore()
1680 vcpu->arch.io_gpr, run->mmio.len, 1); in kvmppc_emulate_mmio_vmx_loadstore()
1685 run->exit_reason = KVM_EXIT_MMIO; in kvmppc_emulate_mmio_vmx_loadstore()
1689 pr_info("KVM: MMIO emulation failed (VMX repeat)\n"); in kvmppc_emulate_mmio_vmx_loadstore()
1690 run->exit_reason = KVM_EXIT_INTERNAL_ERROR; in kvmppc_emulate_mmio_vmx_loadstore()
1691 run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; in kvmppc_emulate_mmio_vmx_loadstore()
1708 size = one_reg_size(reg->id); in kvm_vcpu_ioctl_get_one_reg()
1710 return -EINVAL; in kvm_vcpu_ioctl_get_one_reg()
1712 r = kvmppc_get_one_reg(vcpu, reg->id, &val); in kvm_vcpu_ioctl_get_one_reg()
1713 if (r == -EINVAL) { in kvm_vcpu_ioctl_get_one_reg()
1715 switch (reg->id) { in kvm_vcpu_ioctl_get_one_reg()
1719 r = -ENXIO; in kvm_vcpu_ioctl_get_one_reg()
1722 val.vval = vcpu->arch.vr.vr[reg->id - KVM_REG_PPC_VR0]; in kvm_vcpu_ioctl_get_one_reg()
1726 r = -ENXIO; in kvm_vcpu_ioctl_get_one_reg()
1729 val = get_reg_val(reg->id, vcpu->arch.vr.vscr.u[3]); in kvm_vcpu_ioctl_get_one_reg()
1732 val = get_reg_val(reg->id, vcpu->arch.vrsave); in kvm_vcpu_ioctl_get_one_reg()
1736 r = -EINVAL; in kvm_vcpu_ioctl_get_one_reg()
1744 if (copy_to_user((char __user *)(unsigned long)reg->addr, &val, size)) in kvm_vcpu_ioctl_get_one_reg()
1745 r = -EFAULT; in kvm_vcpu_ioctl_get_one_reg()
1756 size = one_reg_size(reg->id); in kvm_vcpu_ioctl_set_one_reg()
1758 return -EINVAL; in kvm_vcpu_ioctl_set_one_reg()
1760 if (copy_from_user(&val, (char __user *)(unsigned long)reg->addr, size)) in kvm_vcpu_ioctl_set_one_reg()
1761 return -EFAULT; in kvm_vcpu_ioctl_set_one_reg()
1763 r = kvmppc_set_one_reg(vcpu, reg->id, &val); in kvm_vcpu_ioctl_set_one_reg()
1764 if (r == -EINVAL) { in kvm_vcpu_ioctl_set_one_reg()
1766 switch (reg->id) { in kvm_vcpu_ioctl_set_one_reg()
1770 r = -ENXIO; in kvm_vcpu_ioctl_set_one_reg()
1773 vcpu->arch.vr.vr[reg->id - KVM_REG_PPC_VR0] = val.vval; in kvm_vcpu_ioctl_set_one_reg()
1777 r = -ENXIO; in kvm_vcpu_ioctl_set_one_reg()
1780 vcpu->arch.vr.vscr.u[3] = set_reg_val(reg->id, val); in kvm_vcpu_ioctl_set_one_reg()
1784 r = -ENXIO; in kvm_vcpu_ioctl_set_one_reg()
1787 vcpu->arch.vrsave = set_reg_val(reg->id, val); in kvm_vcpu_ioctl_set_one_reg()
1791 r = -EINVAL; in kvm_vcpu_ioctl_set_one_reg()
1801 struct kvm_run *run = vcpu->run; in kvm_arch_vcpu_ioctl_run()
1806 if (vcpu->mmio_needed) { in kvm_arch_vcpu_ioctl_run()
1807 vcpu->mmio_needed = 0; in kvm_arch_vcpu_ioctl_run()
1808 if (!vcpu->mmio_is_write) in kvm_arch_vcpu_ioctl_run()
1811 if (vcpu->arch.mmio_vsx_copy_nums > 0) { in kvm_arch_vcpu_ioctl_run()
1812 vcpu->arch.mmio_vsx_copy_nums--; in kvm_arch_vcpu_ioctl_run()
1813 vcpu->arch.mmio_vsx_offset++; in kvm_arch_vcpu_ioctl_run()
1816 if (vcpu->arch.mmio_vsx_copy_nums > 0) { in kvm_arch_vcpu_ioctl_run()
1819 vcpu->mmio_needed = 1; in kvm_arch_vcpu_ioctl_run()
1825 if (vcpu->arch.mmio_vmx_copy_nums > 0) { in kvm_arch_vcpu_ioctl_run()
1826 vcpu->arch.mmio_vmx_copy_nums--; in kvm_arch_vcpu_ioctl_run()
1827 vcpu->arch.mmio_vmx_offset++; in kvm_arch_vcpu_ioctl_run()
1830 if (vcpu->arch.mmio_vmx_copy_nums > 0) { in kvm_arch_vcpu_ioctl_run()
1833 vcpu->mmio_needed = 1; in kvm_arch_vcpu_ioctl_run()
1838 } else if (vcpu->arch.osi_needed) { in kvm_arch_vcpu_ioctl_run()
1839 u64 *gprs = run->osi.gprs; in kvm_arch_vcpu_ioctl_run()
1844 vcpu->arch.osi_needed = 0; in kvm_arch_vcpu_ioctl_run()
1845 } else if (vcpu->arch.hcall_needed) { in kvm_arch_vcpu_ioctl_run()
1848 kvmppc_set_gpr(vcpu, 3, run->papr_hcall.ret); in kvm_arch_vcpu_ioctl_run()
1850 kvmppc_set_gpr(vcpu, 4 + i, run->papr_hcall.args[i]); in kvm_arch_vcpu_ioctl_run()
1851 vcpu->arch.hcall_needed = 0; in kvm_arch_vcpu_ioctl_run()
1853 } else if (vcpu->arch.epr_needed) { in kvm_arch_vcpu_ioctl_run()
1854 kvmppc_set_epr(vcpu, run->epr.epr); in kvm_arch_vcpu_ioctl_run()
1855 vcpu->arch.epr_needed = 0; in kvm_arch_vcpu_ioctl_run()
1861 if (run->immediate_exit) in kvm_arch_vcpu_ioctl_run()
1862 r = -EINTR; in kvm_arch_vcpu_ioctl_run()
1885 if (irq->irq == KVM_INTERRUPT_UNSET) { in kvm_vcpu_ioctl_interrupt()
1902 if (cap->flags) in kvm_vcpu_ioctl_enable_cap()
1903 return -EINVAL; in kvm_vcpu_ioctl_enable_cap()
1905 switch (cap->cap) { in kvm_vcpu_ioctl_enable_cap()
1908 vcpu->arch.osi_enabled = true; in kvm_vcpu_ioctl_enable_cap()
1912 vcpu->arch.papr_enabled = true; in kvm_vcpu_ioctl_enable_cap()
1916 if (cap->args[0]) in kvm_vcpu_ioctl_enable_cap()
1917 vcpu->arch.epr_flags |= KVMPPC_EPR_USER; in kvm_vcpu_ioctl_enable_cap()
1919 vcpu->arch.epr_flags &= ~KVMPPC_EPR_USER; in kvm_vcpu_ioctl_enable_cap()
1924 vcpu->arch.watchdog_enabled = true; in kvm_vcpu_ioctl_enable_cap()
1929 struct kvm_config_tlb cfg; in kvm_vcpu_ioctl_enable_cap() local
1930 void __user *user_ptr = (void __user *)(uintptr_t)cap->args[0]; in kvm_vcpu_ioctl_enable_cap()
1932 r = -EFAULT; in kvm_vcpu_ioctl_enable_cap()
1933 if (copy_from_user(&cfg, user_ptr, sizeof(cfg))) in kvm_vcpu_ioctl_enable_cap()
1936 r = kvm_vcpu_ioctl_config_tlb(vcpu, &cfg); in kvm_vcpu_ioctl_enable_cap()
1945 r = -EBADF; in kvm_vcpu_ioctl_enable_cap()
1946 f = fdget(cap->args[0]); in kvm_vcpu_ioctl_enable_cap()
1950 r = -EPERM; in kvm_vcpu_ioctl_enable_cap()
1953 r = kvmppc_mpic_connect_vcpu(dev, vcpu, cap->args[1]); in kvm_vcpu_ioctl_enable_cap()
1964 r = -EBADF; in kvm_vcpu_ioctl_enable_cap()
1965 f = fdget(cap->args[0]); in kvm_vcpu_ioctl_enable_cap()
1969 r = -EPERM; in kvm_vcpu_ioctl_enable_cap()
1973 r = kvmppc_xive_connect_vcpu(dev, vcpu, cap->args[1]); in kvm_vcpu_ioctl_enable_cap()
1975 r = kvmppc_xics_connect_vcpu(dev, vcpu, cap->args[1]); in kvm_vcpu_ioctl_enable_cap()
1987 r = -EBADF; in kvm_vcpu_ioctl_enable_cap()
1988 f = fdget(cap->args[0]); in kvm_vcpu_ioctl_enable_cap()
1992 r = -ENXIO; in kvm_vcpu_ioctl_enable_cap()
1998 r = -EPERM; in kvm_vcpu_ioctl_enable_cap()
2002 cap->args[1]); in kvm_vcpu_ioctl_enable_cap()
2010 r = -EINVAL; in kvm_vcpu_ioctl_enable_cap()
2011 if (!is_kvmppc_hv_enabled(vcpu->kvm)) in kvm_vcpu_ioctl_enable_cap()
2014 vcpu->kvm->arch.fwnmi_enabled = true; in kvm_vcpu_ioctl_enable_cap()
2018 r = -EINVAL; in kvm_vcpu_ioctl_enable_cap()
2031 if (kvm->arch.mpic) in kvm_arch_intc_initialized()
2035 if (kvm->arch.xics || kvm->arch.xive) in kvm_arch_intc_initialized()
2044 return -EINVAL; in kvm_arch_vcpu_ioctl_get_mpstate()
2050 return -EINVAL; in kvm_arch_vcpu_ioctl_set_mpstate()
2056 struct kvm_vcpu *vcpu = filp->private_data; in kvm_arch_vcpu_async_ioctl()
2062 return -EFAULT; in kvm_arch_vcpu_async_ioctl()
2065 return -ENOIOCTLCMD; in kvm_arch_vcpu_async_ioctl()
2071 struct kvm_vcpu *vcpu = filp->private_data; in kvm_arch_vcpu_ioctl()
2079 r = -EFAULT; in kvm_arch_vcpu_ioctl()
2092 r = -EFAULT; in kvm_arch_vcpu_ioctl()
2105 r = -EFAULT; in kvm_arch_vcpu_ioctl()
2115 r = -EINVAL; in kvm_arch_vcpu_ioctl()
2132 pvinfo->hcall[0] = cpu_to_be32(inst_sc1); in kvm_vm_ioctl_get_pvinfo()
2133 pvinfo->hcall[1] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo()
2134 pvinfo->hcall[2] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo()
2135 pvinfo->hcall[3] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo()
2151 pvinfo->hcall[0] = cpu_to_be32(inst_lis | ((KVM_SC_MAGIC_R0 >> 16) & inst_imm_mask)); in kvm_vm_ioctl_get_pvinfo()
2152 pvinfo->hcall[1] = cpu_to_be32(inst_ori | (KVM_SC_MAGIC_R0 & inst_imm_mask)); in kvm_vm_ioctl_get_pvinfo()
2153 pvinfo->hcall[2] = cpu_to_be32(inst_sc); in kvm_vm_ioctl_get_pvinfo()
2154 pvinfo->hcall[3] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo()
2157 pvinfo->flags = KVM_PPC_PVINFO_FLAGS_EV_IDLE; in kvm_vm_ioctl_get_pvinfo()
2167 ret = ret || (kvm->arch.mpic != NULL); in kvm_arch_irqchip_in_kernel()
2170 ret = ret || (kvm->arch.xics != NULL); in kvm_arch_irqchip_in_kernel()
2171 ret = ret || (kvm->arch.xive != NULL); in kvm_arch_irqchip_in_kernel()
2181 return -ENXIO; in kvm_vm_ioctl_irq_line()
2183 irq_event->status = kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, in kvm_vm_ioctl_irq_line()
2184 irq_event->irq, irq_event->level, in kvm_vm_ioctl_irq_line()
2195 if (cap->flags) in kvm_vm_ioctl_enable_cap()
2196 return -EINVAL; in kvm_vm_ioctl_enable_cap()
2198 switch (cap->cap) { in kvm_vm_ioctl_enable_cap()
2201 unsigned long hcall = cap->args[0]; in kvm_vm_ioctl_enable_cap()
2203 r = -EINVAL; in kvm_vm_ioctl_enable_cap()
2205 cap->args[1] > 1) in kvm_vm_ioctl_enable_cap()
2209 if (cap->args[1]) in kvm_vm_ioctl_enable_cap()
2210 set_bit(hcall / 4, kvm->arch.enabled_hcalls); in kvm_vm_ioctl_enable_cap()
2212 clear_bit(hcall / 4, kvm->arch.enabled_hcalls); in kvm_vm_ioctl_enable_cap()
2217 unsigned long mode = cap->args[0]; in kvm_vm_ioctl_enable_cap()
2218 unsigned long flags = cap->args[1]; in kvm_vm_ioctl_enable_cap()
2220 r = -EINVAL; in kvm_vm_ioctl_enable_cap()
2221 if (kvm->arch.kvm_ops->set_smt_mode) in kvm_vm_ioctl_enable_cap()
2222 r = kvm->arch.kvm_ops->set_smt_mode(kvm, mode, flags); in kvm_vm_ioctl_enable_cap()
2227 r = -EINVAL; in kvm_vm_ioctl_enable_cap()
2229 !kvm->arch.kvm_ops->enable_nested) in kvm_vm_ioctl_enable_cap()
2231 r = kvm->arch.kvm_ops->enable_nested(kvm); in kvm_vm_ioctl_enable_cap()
2236 r = -EINVAL; in kvm_vm_ioctl_enable_cap()
2237 if (!is_kvmppc_hv_enabled(kvm) || !kvm->arch.kvm_ops->enable_svm) in kvm_vm_ioctl_enable_cap()
2239 r = kvm->arch.kvm_ops->enable_svm(kvm); in kvm_vm_ioctl_enable_cap()
2242 r = -EINVAL; in kvm_vm_ioctl_enable_cap()
2243 if (!is_kvmppc_hv_enabled(kvm) || !kvm->arch.kvm_ops->enable_dawr1) in kvm_vm_ioctl_enable_cap()
2245 r = kvm->arch.kvm_ops->enable_dawr1(kvm); in kvm_vm_ioctl_enable_cap()
2249 r = -EINVAL; in kvm_vm_ioctl_enable_cap()
2272 return -ENOTTY; in pseries_get_cpu_char()
2276 cp->character = c.character; in pseries_get_cpu_char()
2277 cp->behaviour = c.behaviour; in pseries_get_cpu_char()
2278 cp->character_mask = KVM_PPC_CPU_CHAR_SPEC_BAR_ORI31 | in pseries_get_cpu_char()
2287 cp->behaviour_mask = KVM_PPC_CPU_BEHAV_FAVOUR_SECURITY | in pseries_get_cpu_char()
2297 return -ENOTTY; in pseries_get_cpu_char()
2322 if (r != -ENOTTY) in kvmppc_get_cpu_char()
2327 fw_features = of_get_child_by_name(np, "fw-features"); in kvmppc_get_cpu_char()
2332 "inst-spec-barrier-ori31,31,0")) in kvmppc_get_cpu_char()
2333 cp->character |= KVM_PPC_CPU_CHAR_SPEC_BAR_ORI31; in kvmppc_get_cpu_char()
2335 "fw-bcctrl-serialized")) in kvmppc_get_cpu_char()
2336 cp->character |= KVM_PPC_CPU_CHAR_BCCTRL_SERIALISED; in kvmppc_get_cpu_char()
2338 "inst-l1d-flush-ori30,30,0")) in kvmppc_get_cpu_char()
2339 cp->character |= KVM_PPC_CPU_CHAR_L1D_FLUSH_ORI30; in kvmppc_get_cpu_char()
2341 "inst-l1d-flush-trig2")) in kvmppc_get_cpu_char()
2342 cp->character |= KVM_PPC_CPU_CHAR_L1D_FLUSH_TRIG2; in kvmppc_get_cpu_char()
2344 "fw-l1d-thread-split")) in kvmppc_get_cpu_char()
2345 cp->character |= KVM_PPC_CPU_CHAR_L1D_THREAD_PRIV; in kvmppc_get_cpu_char()
2347 "fw-count-cache-disabled")) in kvmppc_get_cpu_char()
2348 cp->character |= KVM_PPC_CPU_CHAR_COUNT_CACHE_DIS; in kvmppc_get_cpu_char()
2350 "fw-count-cache-flush-bcctr2,0,0")) in kvmppc_get_cpu_char()
2351 cp->character |= KVM_PPC_CPU_CHAR_BCCTR_FLUSH_ASSIST; in kvmppc_get_cpu_char()
2352 cp->character_mask = KVM_PPC_CPU_CHAR_SPEC_BAR_ORI31 | in kvmppc_get_cpu_char()
2361 "speculation-policy-favor-security")) in kvmppc_get_cpu_char()
2362 cp->behaviour |= KVM_PPC_CPU_BEHAV_FAVOUR_SECURITY; in kvmppc_get_cpu_char()
2364 "needs-l1d-flush-msr-pr-0-to-1")) in kvmppc_get_cpu_char()
2365 cp->behaviour |= KVM_PPC_CPU_BEHAV_L1D_FLUSH_PR; in kvmppc_get_cpu_char()
2367 "needs-spec-barrier-for-bound-checks")) in kvmppc_get_cpu_char()
2368 cp->behaviour |= KVM_PPC_CPU_BEHAV_BNDS_CHK_SPEC_BAR; in kvmppc_get_cpu_char()
2370 "needs-count-cache-flush-on-context-switch")) in kvmppc_get_cpu_char()
2371 cp->behaviour |= KVM_PPC_CPU_BEHAV_FLUSH_COUNT_CACHE; in kvmppc_get_cpu_char()
2372 cp->behaviour_mask = KVM_PPC_CPU_BEHAV_FAVOUR_SECURITY | in kvmppc_get_cpu_char()
2386 struct kvm *kvm __maybe_unused = filp->private_data; in kvm_arch_vm_ioctl()
2396 r = -EFAULT; in kvm_arch_vm_ioctl()
2406 r = -EFAULT; in kvm_arch_vm_ioctl()
2410 r = -EINVAL; in kvm_arch_vm_ioctl()
2420 r = -EFAULT; in kvm_arch_vm_ioctl()
2437 struct kvm *kvm = filp->private_data; in kvm_arch_vm_ioctl()
2440 r = kvm->arch.kvm_ops->get_smmu_info(kvm, &info); in kvm_arch_vm_ioctl()
2442 r = -EFAULT; in kvm_arch_vm_ioctl()
2446 struct kvm *kvm = filp->private_data; in kvm_arch_vm_ioctl()
2452 struct kvm *kvm = filp->private_data; in kvm_arch_vm_ioctl()
2453 struct kvm_ppc_mmuv3_cfg cfg; in kvm_arch_vm_ioctl() local
2455 r = -EINVAL; in kvm_arch_vm_ioctl()
2456 if (!kvm->arch.kvm_ops->configure_mmu) in kvm_arch_vm_ioctl()
2458 r = -EFAULT; in kvm_arch_vm_ioctl()
2459 if (copy_from_user(&cfg, argp, sizeof(cfg))) in kvm_arch_vm_ioctl()
2461 r = kvm->arch.kvm_ops->configure_mmu(kvm, &cfg); in kvm_arch_vm_ioctl()
2465 struct kvm *kvm = filp->private_data; in kvm_arch_vm_ioctl()
2468 r = -EINVAL; in kvm_arch_vm_ioctl()
2469 if (!kvm->arch.kvm_ops->get_rmmu_info) in kvm_arch_vm_ioctl()
2471 r = kvm->arch.kvm_ops->get_rmmu_info(kvm, &info); in kvm_arch_vm_ioctl()
2473 r = -EFAULT; in kvm_arch_vm_ioctl()
2481 r = -EFAULT; in kvm_arch_vm_ioctl()
2485 struct kvm *kvm = filp->private_data; in kvm_arch_vm_ioctl()
2488 if (!kvm->arch.kvm_ops->svm_off) in kvm_arch_vm_ioctl()
2491 r = kvm->arch.kvm_ops->svm_off(kvm); in kvm_arch_vm_ioctl()
2495 struct kvm *kvm = filp->private_data; in kvm_arch_vm_ioctl()
2496 r = kvm->arch.kvm_ops->arch_vm_ioctl(filp, ioctl, arg); in kvm_arch_vm_ioctl()
2500 r = -ENOTTY; in kvm_arch_vm_ioctl()
2515 lpid = ida_alloc_range(&lpid_inuse, 1, nr_lpids - 1, GFP_KERNEL); in kvmppc_alloc_lpid()
2517 if (lpid == -ENOMEM) in kvmppc_alloc_lpid()
2521 return -ENOMEM; in kvmppc_alloc_lpid()
2545 if (vcpu->kvm->arch.kvm_ops->create_vcpu_debugfs) in kvm_arch_create_vcpu_debugfs()
2546 vcpu->kvm->arch.kvm_ops->create_vcpu_debugfs(vcpu, debugfs_dentry); in kvm_arch_create_vcpu_debugfs()
2551 if (kvm->arch.kvm_ops->create_vm_debugfs) in kvm_arch_create_vm_debugfs()
2552 kvm->arch.kvm_ops->create_vm_debugfs(kvm); in kvm_arch_create_vm_debugfs()