| /linux/arch/arm64/include/asm/ |
| H A D | kvm_emulate.h | 44 bool kvm_condition_valid32(const struct kvm_vcpu *vcpu); 45 void kvm_skip_instr32(struct kvm_vcpu *vcpu); 47 void kvm_inject_undefined(struct kvm_vcpu *vcpu); 48 void kvm_inject_sync(struct kvm_vcpu *vcpu, u64 esr); 49 int kvm_inject_serror_esr(struct kvm_vcpu *vcpu, u64 esr); 50 int kvm_inject_sea(struct kvm_vcpu *vcpu, bool iabt, u64 addr); 51 int kvm_inject_dabt_excl_atomic(struct kvm_vcpu *vcpu, u64 addr); 52 void kvm_inject_size_fault(struct kvm_vcpu *vcpu); 54 static inline int kvm_inject_sea_dabt(struct kvm_vcpu *vcpu, u64 addr) in kvm_inject_sea_dabt() argument 56 return kvm_inject_sea(vcpu, false, addr); in kvm_inject_sea_dabt() [all …]
|
| /linux/arch/powerpc/kvm/ |
| H A D | book3s_emulate.c | 70 static bool spr_allowed(struct kvm_vcpu *vcpu, enum priv_level level) in spr_allowed() argument 73 if (vcpu->arch.papr_enabled && (level > PRIV_SUPER)) in spr_allowed() 77 if ((kvmppc_get_msr(vcpu) & MSR_PR) && level > PRIV_PROBLEM) in spr_allowed() 84 static inline void kvmppc_copyto_vcpu_tm(struct kvm_vcpu *vcpu) in kvmppc_copyto_vcpu_tm() argument 86 memcpy(&vcpu->arch.gpr_tm[0], &vcpu->arch.regs.gpr[0], in kvmppc_copyto_vcpu_tm() 87 sizeof(vcpu->arch.gpr_tm)); in kvmppc_copyto_vcpu_tm() 88 memcpy(&vcpu->arch.fp_tm, &vcpu->arch.fp, in kvmppc_copyto_vcpu_tm() 90 memcpy(&vcpu->arch.vr_tm, &vcpu->arch.vr, in kvmppc_copyto_vcpu_tm() 92 vcpu->arch.ppr_tm = vcpu->arch.ppr; in kvmppc_copyto_vcpu_tm() 93 vcpu->arch.dscr_tm = vcpu->arch.dscr; in kvmppc_copyto_vcpu_tm() [all …]
|
| H A D | booke.c | 90 void kvmppc_dump_vcpu(struct kvm_vcpu *vcpu) in kvmppc_dump_vcpu() argument 94 printk("pc: %08lx msr: %08llx\n", vcpu->arch.regs.nip, in kvmppc_dump_vcpu() 95 vcpu->arch.shared->msr); in kvmppc_dump_vcpu() 96 printk("lr: %08lx ctr: %08lx\n", vcpu->arch.regs.link, in kvmppc_dump_vcpu() 97 vcpu->arch.regs.ctr); in kvmppc_dump_vcpu() 98 printk("srr0: %08llx srr1: %08llx\n", vcpu->arch.shared->srr0, in kvmppc_dump_vcpu() 99 vcpu->arch.shared->srr1); in kvmppc_dump_vcpu() 101 printk("exceptions: %08lx\n", vcpu->arch.pending_exceptions); in kvmppc_dump_vcpu() 105 kvmppc_get_gpr(vcpu, i), in kvmppc_dump_vcpu() 106 kvmppc_get_gpr(vcpu, i+1), in kvmppc_dump_vcpu() [all …]
|
| H A D | booke_emulate.c | 24 static void kvmppc_emul_rfi(struct kvm_vcpu *vcpu) in kvmppc_emul_rfi() argument 26 vcpu->arch.regs.nip = vcpu->arch.shared->srr0; in kvmppc_emul_rfi() 27 kvmppc_set_msr(vcpu, vcpu->arch.shared->srr1); in kvmppc_emul_rfi() 30 static void kvmppc_emul_rfdi(struct kvm_vcpu *vcpu) in kvmppc_emul_rfdi() argument 32 vcpu->arch.regs.nip = vcpu->arch.dsrr0; in kvmppc_emul_rfdi() 33 kvmppc_set_msr(vcpu, vcpu->arch.dsrr1); in kvmppc_emul_rfdi() 36 static void kvmppc_emul_rfci(struct kvm_vcpu *vcpu) in kvmppc_emul_rfci() argument 38 vcpu->arch.regs.nip = vcpu->arch.csrr0; in kvmppc_emul_rfci() 39 kvmppc_set_msr(vcpu, vcpu->arch.csrr1); in kvmppc_emul_rfci() 42 int kvmppc_booke_emulate_op(struct kvm_vcpu *vcpu, in kvmppc_booke_emulate_op() argument [all …]
|
| H A D | book3s_pr.c | 53 static int kvmppc_handle_ext(struct kvm_vcpu *vcpu, unsigned int exit_nr, 56 static int kvmppc_handle_fac(struct kvm_vcpu *vcpu, ulong fac); 67 static bool kvmppc_is_split_real(struct kvm_vcpu *vcpu) in kvmppc_is_split_real() argument 69 ulong msr = kvmppc_get_msr(vcpu); in kvmppc_is_split_real() 73 static void kvmppc_fixup_split_real(struct kvm_vcpu *vcpu) in kvmppc_fixup_split_real() argument 75 ulong msr = kvmppc_get_msr(vcpu); in kvmppc_fixup_split_real() 76 ulong pc = kvmppc_get_pc(vcpu); in kvmppc_fixup_split_real() 83 if (vcpu->arch.hflags & BOOK3S_HFLAG_SPLIT_HACK) in kvmppc_fixup_split_real() 90 vcpu->arch.hflags |= BOOK3S_HFLAG_SPLIT_HACK; in kvmppc_fixup_split_real() 91 kvmppc_set_pc(vcpu, pc | SPLIT_HACK_OFFS); in kvmppc_fixup_split_real() [all …]
|
| H A D | emulate_loadstore.c | 28 static bool kvmppc_check_fp_disabled(struct kvm_vcpu *vcpu) in kvmppc_check_fp_disabled() argument 30 if (!(kvmppc_get_msr(vcpu) & MSR_FP)) { in kvmppc_check_fp_disabled() 31 kvmppc_core_queue_fpunavail(vcpu, kvmppc_get_msr(vcpu) & SRR1_PREFIXED); in kvmppc_check_fp_disabled() 40 static bool kvmppc_check_vsx_disabled(struct kvm_vcpu *vcpu) in kvmppc_check_vsx_disabled() argument 42 if (!(kvmppc_get_msr(vcpu) & MSR_VSX)) { in kvmppc_check_vsx_disabled() 43 kvmppc_core_queue_vsx_unavail(vcpu, kvmppc_get_msr(vcpu) & SRR1_PREFIXED); in kvmppc_check_vsx_disabled() 52 static bool kvmppc_check_altivec_disabled(struct kvm_vcpu *vcpu) in kvmppc_check_altivec_disabled() argument 54 if (!(kvmppc_get_msr(vcpu) & MSR_VEC)) { in kvmppc_check_altivec_disabled() 55 kvmppc_core_queue_vec_unavail(vcpu, kvmppc_get_msr(vcpu) & SRR1_PREFIXED); in kvmppc_check_altivec_disabled() 72 int kvmppc_emulate_loadstore(struct kvm_vcpu *vcpu) in kvmppc_emulate_loadstore() argument [all …]
|
| H A D | book3s_hv_tm.c | 16 static void emulate_tx_failure(struct kvm_vcpu *vcpu, u64 failure_cause) in emulate_tx_failure() argument 19 u64 msr = vcpu->arch.shregs.msr; in emulate_tx_failure() 21 tfiar = vcpu->arch.regs.nip & ~0x3ull; in emulate_tx_failure() 23 if (MSR_TM_SUSPENDED(vcpu->arch.shregs.msr)) in emulate_tx_failure() 29 vcpu->arch.tfiar = tfiar; in emulate_tx_failure() 31 vcpu->arch.texasr = (vcpu->arch.texasr & 0x3ffffff) | texasr; in emulate_tx_failure() 42 int kvmhv_p9_tm_emulation(struct kvm_vcpu *vcpu) in kvmhv_p9_tm_emulation() argument 44 u32 instr = vcpu->arch.emul_inst; in kvmhv_p9_tm_emulation() 45 u64 msr = vcpu->arch.shregs.msr; in kvmhv_p9_tm_emulation() 56 vcpu->arch.regs.nip -= 4; in kvmhv_p9_tm_emulation() [all …]
|
| H A D | book3s.c | 98 static inline void kvmppc_update_int_pending(struct kvm_vcpu *vcpu, in kvmppc_update_int_pending() argument 101 if (is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_update_int_pending() 104 kvmppc_set_int_pending(vcpu, 1); in kvmppc_update_int_pending() 106 kvmppc_set_int_pending(vcpu, 0); in kvmppc_update_int_pending() 109 static inline bool kvmppc_critical_section(struct kvm_vcpu *vcpu) in kvmppc_critical_section() argument 115 if (is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_critical_section() 118 crit_raw = kvmppc_get_critical(vcpu); in kvmppc_critical_section() 119 crit_r1 = kvmppc_get_gpr(vcpu, 1); in kvmppc_critical_section() 122 if (!(kvmppc_get_msr(vcpu) & MSR_SF)) { in kvmppc_critical_section() 130 crit = crit && !(kvmppc_get_msr(vcpu) & MSR_PR); in kvmppc_critical_section() [all …]
|
| H A D | book3s_paired_singles.c | 150 static inline void kvmppc_sync_qpr(struct kvm_vcpu *vcpu, int rt) in kvmppc_sync_qpr() argument 152 kvm_cvt_df(&VCPU_FPR(vcpu, rt), &vcpu->arch.qpr[rt]); in kvmppc_sync_qpr() 155 static void kvmppc_inject_pf(struct kvm_vcpu *vcpu, ulong eaddr, bool is_store) in kvmppc_inject_pf() argument 158 u64 msr = kvmppc_get_msr(vcpu); in kvmppc_inject_pf() 162 kvmppc_set_msr(vcpu, msr); in kvmppc_inject_pf() 163 kvmppc_set_dar(vcpu, eaddr); in kvmppc_inject_pf() 168 kvmppc_set_dsisr(vcpu, dsisr); in kvmppc_inject_pf() 169 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_DATA_STORAGE); in kvmppc_inject_pf() 172 static int kvmppc_emulate_fpr_load(struct kvm_vcpu *vcpu, in kvmppc_emulate_fpr_load() argument 184 r = kvmppc_ld(vcpu, &addr, len, tmp, true); in kvmppc_emulate_fpr_load() [all …]
|
| H A D | book3s_pr_papr.c | 23 static unsigned long get_pteg_addr(struct kvm_vcpu *vcpu, long pte_index) in get_pteg_addr() argument 25 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu); in get_pteg_addr() 36 static int kvmppc_h_pr_enter(struct kvm_vcpu *vcpu) in kvmppc_h_pr_enter() argument 38 long flags = kvmppc_get_gpr(vcpu, 4); in kvmppc_h_pr_enter() 39 long pte_index = kvmppc_get_gpr(vcpu, 5); in kvmppc_h_pr_enter() 47 pteg_addr = get_pteg_addr(vcpu, pte_index); in kvmppc_h_pr_enter() 49 mutex_lock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_enter() 70 hpte[0] = cpu_to_be64(kvmppc_get_gpr(vcpu, 6)); in kvmppc_h_pr_enter() 71 hpte[1] = cpu_to_be64(kvmppc_get_gpr(vcpu, 7)); in kvmppc_h_pr_enter() 76 kvmppc_set_gpr(vcpu, 4, pte_index | i); in kvmppc_h_pr_enter() [all …]
|
| H A D | book3s_hv_p9_entry.c | 10 static void load_spr_state(struct kvm_vcpu *vcpu, in load_spr_state() argument 14 mtspr(SPRN_TAR, vcpu->arch.tar); in load_spr_state() 18 current->thread.vrsave != vcpu->arch.vrsave) in load_spr_state() 19 mtspr(SPRN_VRSAVE, vcpu->arch.vrsave); in load_spr_state() 22 if (vcpu->arch.hfscr & HFSCR_EBB) { in load_spr_state() 23 if (current->thread.ebbhr != vcpu->arch.ebbhr) in load_spr_state() 24 mtspr(SPRN_EBBHR, vcpu->arch.ebbhr); in load_spr_state() 25 if (current->thread.ebbrr != vcpu->arch.ebbrr) in load_spr_state() 26 mtspr(SPRN_EBBRR, vcpu->arch.ebbrr); in load_spr_state() 27 if (current->thread.bescr != vcpu->arch.bescr) in load_spr_state() [all …]
|
| H A D | powerpc.c | 55 bool kvm_arch_dy_runnable(struct kvm_vcpu *vcpu) in kvm_arch_dy_runnable() argument 57 return kvm_arch_vcpu_runnable(vcpu); in kvm_arch_dy_runnable() 60 bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu) in kvm_arch_vcpu_in_kernel() argument 65 int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu) in kvm_arch_vcpu_should_kick() argument 79 int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu) in kvmppc_prepare_to_enter() argument 95 kvmppc_account_exit(vcpu, SIGNAL_EXITS); in kvmppc_prepare_to_enter() 96 vcpu->run->exit_reason = KVM_EXIT_INTR; in kvmppc_prepare_to_enter() 101 vcpu->mode = IN_GUEST_MODE; in kvmppc_prepare_to_enter() 114 if (kvm_request_pending(vcpu)) { in kvmppc_prepare_to_enter() 117 trace_kvm_check_requests(vcpu); in kvmppc_prepare_to_enter() [all …]
|
| /linux/arch/riscv/kvm/ |
| H A D | vcpu.c | 56 static void kvm_riscv_vcpu_context_reset(struct kvm_vcpu *vcpu, in kvm_riscv_vcpu_context_reset() argument 59 struct kvm_vcpu_csr *csr = &vcpu->arch.guest_csr; in kvm_riscv_vcpu_context_reset() 60 struct kvm_cpu_context *cntx = &vcpu->arch.guest_context; in kvm_riscv_vcpu_context_reset() 65 memset(&vcpu->arch.smstateen_csr, 0, sizeof(vcpu->arch.smstateen_csr)); in kvm_riscv_vcpu_context_reset() 71 kvm_riscv_vcpu_sbi_load_reset_state(vcpu); in kvm_riscv_vcpu_context_reset() 81 static void kvm_riscv_reset_vcpu(struct kvm_vcpu *vcpu, bool kvm_sbi_reset) in kvm_riscv_reset_vcpu() argument 91 loaded = (vcpu->cpu != -1); in kvm_riscv_reset_vcpu() 93 kvm_arch_vcpu_put(vcpu); in kvm_riscv_reset_vcpu() 95 vcpu->arch.last_exit_cpu = -1; in kvm_riscv_reset_vcpu() 97 kvm_riscv_vcpu_context_reset(vcpu, kvm_sbi_reset); in kvm_riscv_reset_vcpu() [all …]
|
| /linux/arch/arm64/kvm/hyp/vhe/ |
| H A D | switch.c | 52 static u64 __compute_hcr(struct kvm_vcpu *vcpu) in __compute_hcr() argument 54 u64 guest_hcr, hcr = vcpu->arch.hcr_el2; in __compute_hcr() 56 if (!vcpu_has_nv(vcpu)) in __compute_hcr() 65 if (is_hyp_ctxt(vcpu)) { in __compute_hcr() 70 if (!vcpu_el2_e2h_is_set(vcpu)) in __compute_hcr() 81 guest_hcr = kvm_vcpu_apply_reg_masks(vcpu, HCR_EL2, 0); in __compute_hcr() 83 write_sysreg_s(vcpu->arch.ctxt.vncr_array, SYS_VNCR_EL2); in __compute_hcr() 87 guest_hcr = __vcpu_sys_reg(vcpu, HCR_EL2); in __compute_hcr() 92 va |= __vcpu_sys_reg(vcpu, VNCR_EL2) & GENMASK(PAGE_SHIFT - 1, 0); in __compute_hcr() 113 static void __activate_traps(struct kvm_vcpu *vcpu) in __activate_traps() argument [all …]
|
| /linux/arch/arm64/kvm/hyp/include/hyp/ |
| H A D | switch.h | 43 static inline void __fpsimd_save_fpexc32(struct kvm_vcpu *vcpu) in __fpsimd_save_fpexc32() argument 45 if (!vcpu_el1_is_32bit(vcpu)) in __fpsimd_save_fpexc32() 48 __vcpu_assign_sys_reg(vcpu, FPEXC32_EL2, read_sysreg(fpexc32_el2)); in __fpsimd_save_fpexc32() 51 static inline void __activate_traps_fpsimd32(struct kvm_vcpu *vcpu) in __activate_traps_fpsimd32() argument 62 if (vcpu_el1_is_32bit(vcpu) && system_supports_fpsimd()) in __activate_traps_fpsimd32() 66 static inline void __activate_cptr_traps_nvhe(struct kvm_vcpu *vcpu) in __activate_cptr_traps_nvhe() argument 76 if (!vcpu_has_sve(vcpu) || !guest_owns_fp_regs()) in __activate_cptr_traps_nvhe() 85 static inline void __activate_cptr_traps_vhe(struct kvm_vcpu *vcpu) in __activate_cptr_traps_vhe() argument 100 if (vcpu_has_sve(vcpu)) in __activate_cptr_traps_vhe() 104 if (!vcpu_has_nv(vcpu)) in __activate_cptr_traps_vhe() [all …]
|
| /linux/arch/mips/kvm/ |
| H A D | emulate.c | 40 static int kvm_compute_return_epc(struct kvm_vcpu *vcpu, unsigned long instpc, in kvm_compute_return_epc() argument 45 struct kvm_vcpu_arch *arch = &vcpu->arch; in kvm_compute_return_epc() 56 err = kvm_get_badinstrp((u32 *)epc, vcpu, &insn.word); in kvm_compute_return_epc() 243 enum emulation_result update_pc(struct kvm_vcpu *vcpu, u32 cause) in update_pc() argument 248 err = kvm_compute_return_epc(vcpu, vcpu->arch.pc, in update_pc() 249 &vcpu->arch.pc); in update_pc() 253 vcpu->arch.pc += 4; in update_pc() 256 kvm_debug("update_pc(): New PC: %#lx\n", vcpu->arch.pc); in update_pc() 272 int kvm_get_badinstr(u32 *opc, struct kvm_vcpu *vcpu, u32 *out) in kvm_get_badinstr() argument 275 *out = vcpu->arch.host_cp0_badinstr; in kvm_get_badinstr() [all …]
|
| /linux/arch/x86/kvm/vmx/ |
| H A D | x86_ops.h | 22 int vmx_vcpu_create(struct kvm_vcpu *vcpu); 23 int vmx_vcpu_pre_run(struct kvm_vcpu *vcpu); 24 fastpath_t vmx_vcpu_run(struct kvm_vcpu *vcpu, u64 run_flags); 25 void vmx_vcpu_free(struct kvm_vcpu *vcpu); 26 void vmx_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event); 27 void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu); 28 void vmx_vcpu_put(struct kvm_vcpu *vcpu); 29 int vmx_handle_exit(struct kvm_vcpu *vcpu, fastpath_t exit_fastpath); 30 void vmx_handle_exit_irqoff(struct kvm_vcpu *vcpu); 31 int vmx_skip_emulated_instruction(struct kvm_vcpu *vcpu); [all …]
|
| /linux/arch/x86/kvm/ |
| H A D | x86.c | 109 ((struct kvm_vcpu *)(ctxt)->vcpu) 131 static void update_cr8_intercept(struct kvm_vcpu *vcpu); 132 static void process_nmi(struct kvm_vcpu *vcpu); 133 static void __kvm_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags); 134 static void store_regs(struct kvm_vcpu *vcpu); 135 static int sync_regs(struct kvm_vcpu *vcpu); 136 static int kvm_vcpu_do_singlestep(struct kvm_vcpu *vcpu); 138 static int __set_sregs2(struct kvm_vcpu *vcpu, struct kvm_sregs2 *sregs2); 139 static void __get_sregs2(struct kvm_vcpu *vcpu, struct kvm_sregs2 *sregs2); 142 static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu); [all …]
|
| H A D | kvm_cache_regs.h | 20 static __always_inline unsigned long kvm_##lname##_read(struct kvm_vcpu *vcpu)\ 22 return vcpu->arch.regs[VCPU_REGS_##uname]; \ 24 static __always_inline void kvm_##lname##_write(struct kvm_vcpu *vcpu, \ 27 vcpu->arch.regs[VCPU_REGS_##uname] = val; \ 56 #define kvm_assert_register_caching_allowed(vcpu) \ in BUILD_KVM_GPR_ACCESSORS() argument 57 lockdep_assert_once(in_task() || kvm_arch_pmi_in_guest(vcpu)) in BUILD_KVM_GPR_ACCESSORS() 66 static inline bool kvm_register_is_available(struct kvm_vcpu *vcpu, in BUILD_KVM_GPR_ACCESSORS() 69 kvm_assert_register_caching_allowed(vcpu); in BUILD_KVM_GPR_ACCESSORS() 70 return test_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); in BUILD_KVM_GPR_ACCESSORS() 73 static inline bool kvm_register_is_dirty(struct kvm_vcpu *vcpu, in kvm_register_is_dirty() argument [all …]
|
| H A D | smm.c | 112 void kvm_smm_changed(struct kvm_vcpu *vcpu, bool entering_smm) in kvm_smm_changed() argument 114 trace_kvm_smm_transition(vcpu->vcpu_id, vcpu->arch.smbase, entering_smm); in kvm_smm_changed() 117 vcpu->arch.hflags |= HF_SMM_MASK; in kvm_smm_changed() 119 vcpu->arch.hflags &= ~(HF_SMM_MASK | HF_SMM_INSIDE_NMI_MASK); in kvm_smm_changed() 122 kvm_make_request(KVM_REQ_EVENT, vcpu); in kvm_smm_changed() 129 vcpu->arch.pdptrs_from_userspace = false; in kvm_smm_changed() 132 kvm_mmu_reset_context(vcpu); in kvm_smm_changed() 136 void process_smi(struct kvm_vcpu *vcpu) in process_smi() argument 138 vcpu->arch.smi_pending = true; in process_smi() 139 kvm_make_request(KVM_REQ_EVENT, vcpu); in process_smi() [all …]
|
| /linux/arch/loongarch/kvm/ |
| H A D | vcpu.c | 41 static inline void kvm_save_host_pmu(struct kvm_vcpu *vcpu) in kvm_save_host_pmu() argument 45 context = this_cpu_ptr(vcpu->kvm->arch.vmcs); in kvm_save_host_pmu() 56 static inline void kvm_restore_host_pmu(struct kvm_vcpu *vcpu) in kvm_restore_host_pmu() argument 60 context = this_cpu_ptr(vcpu->kvm->arch.vmcs); in kvm_restore_host_pmu() 72 static inline void kvm_save_guest_pmu(struct kvm_vcpu *vcpu) in kvm_save_guest_pmu() argument 74 struct loongarch_csrs *csr = vcpu->arch.csr; in kvm_save_guest_pmu() 86 static inline void kvm_restore_guest_pmu(struct kvm_vcpu *vcpu) in kvm_restore_guest_pmu() argument 88 struct loongarch_csrs *csr = vcpu->arch.csr; in kvm_restore_guest_pmu() 100 static int kvm_own_pmu(struct kvm_vcpu *vcpu) in kvm_own_pmu() argument 104 if (!kvm_guest_has_pmu(&vcpu->arch)) in kvm_own_pmu() [all …]
|
| H A D | exit.c | 24 static int kvm_emu_cpucfg(struct kvm_vcpu *vcpu, larch_inst inst) in kvm_emu_cpucfg() argument 34 ++vcpu->stat.cpucfg_exits; in kvm_emu_cpucfg() 35 index = vcpu->arch.gprs[rj]; in kvm_emu_cpucfg() 46 vcpu->arch.gprs[rd] = vcpu->arch.cpucfg[index]; in kvm_emu_cpucfg() 50 vcpu->arch.gprs[rd] = *(unsigned int *)KVM_SIGNATURE; in kvm_emu_cpucfg() 53 ret = vcpu->kvm->arch.pv_features & LOONGARCH_PV_FEAT_MASK; in kvm_emu_cpucfg() 54 vcpu->arch.gprs[rd] = ret; in kvm_emu_cpucfg() 57 vcpu->arch.gprs[rd] = 0; in kvm_emu_cpucfg() 65 static unsigned long kvm_emu_read_csr(struct kvm_vcpu *vcpu, int csrid) in kvm_emu_read_csr() argument 68 struct loongarch_csrs *csr = vcpu->arch.csr; in kvm_emu_read_csr() [all …]
|
| /linux/arch/s390/kvm/ |
| H A D | guestdbg.c | 59 static void enable_all_hw_bp(struct kvm_vcpu *vcpu) in enable_all_hw_bp() argument 62 u64 *cr9 = &vcpu->arch.sie_block->gcr[9]; in enable_all_hw_bp() 63 u64 *cr10 = &vcpu->arch.sie_block->gcr[10]; in enable_all_hw_bp() 64 u64 *cr11 = &vcpu->arch.sie_block->gcr[11]; in enable_all_hw_bp() 67 if (vcpu->arch.guestdbg.nr_hw_bp <= 0 || in enable_all_hw_bp() 68 vcpu->arch.guestdbg.hw_bp_info == NULL) in enable_all_hw_bp() 79 for (i = 0; i < vcpu->arch.guestdbg.nr_hw_bp; i++) { in enable_all_hw_bp() 80 start = vcpu->arch.guestdbg.hw_bp_info[i].addr; in enable_all_hw_bp() 81 len = vcpu->arch.guestdbg.hw_bp_info[i].len; in enable_all_hw_bp() 99 static void enable_all_hw_wp(struct kvm_vcpu *vcpu) in enable_all_hw_wp() argument [all …]
|
| /linux/arch/arm64/kvm/ |
| H A D | reset.c | 79 static void kvm_vcpu_enable_sve(struct kvm_vcpu *vcpu) in kvm_vcpu_enable_sve() argument 81 vcpu->arch.sve_max_vl = kvm_sve_max_vl; in kvm_vcpu_enable_sve() 88 set_bit(KVM_ARCH_FLAG_GUEST_HAS_SVE, &vcpu->kvm->arch.flags); in kvm_vcpu_enable_sve() 95 static int kvm_vcpu_finalize_sve(struct kvm_vcpu *vcpu) in kvm_vcpu_finalize_sve() argument 102 vl = vcpu->arch.sve_max_vl; in kvm_vcpu_finalize_sve() 113 reg_sz = vcpu_sve_state_size(vcpu); in kvm_vcpu_finalize_sve() 124 vcpu->arch.sve_state = buf; in kvm_vcpu_finalize_sve() 125 vcpu_set_flag(vcpu, VCPU_SVE_FINALIZED); in kvm_vcpu_finalize_sve() 129 int kvm_arm_vcpu_finalize(struct kvm_vcpu *vcpu, int feature) in kvm_arm_vcpu_finalize() argument 133 if (!vcpu_has_sve(vcpu)) in kvm_arm_vcpu_finalize() [all …]
|
| /linux/arch/powerpc/include/asm/ |
| H A D | kvm_ppc.h | 62 extern int kvmppc_vcpu_run(struct kvm_vcpu *vcpu); 63 extern int __kvmppc_vcpu_run(struct kvm_vcpu *vcpu); 66 extern void kvmppc_dump_vcpu(struct kvm_vcpu *vcpu); 67 extern int kvmppc_handle_load(struct kvm_vcpu *vcpu, 70 extern int kvmppc_handle_loads(struct kvm_vcpu *vcpu, 73 extern int kvmppc_handle_vsx_load(struct kvm_vcpu *vcpu, 76 extern int kvmppc_handle_vmx_load(struct kvm_vcpu *vcpu, 78 extern int kvmppc_handle_vmx_store(struct kvm_vcpu *vcpu, 80 extern int kvmppc_handle_store(struct kvm_vcpu *vcpu, 83 extern int kvmppc_handle_vsx_store(struct kvm_vcpu *vcpu, [all …]
|