| /arch/arm64/kvm/hyp/include/hyp/ |
| A D | sysreg-sr.h | 26 vcpu = container_of(ctxt, struct kvm_vcpu, arch.ctxt); in ctxt_to_vcpu() 50 if (!(ctxt_is_guest(ctxt) && in ctxt_midr_el1() 62 if (ctxt_has_s1poe(ctxt)) in __sysreg_save_common_state() 86 vcpu = ctxt_to_vcpu(ctxt); in ctxt_has_s1pie() 97 vcpu = ctxt_to_vcpu(ctxt); in ctxt_has_tcrx() 108 vcpu = ctxt_to_vcpu(ctxt); in ctxt_has_s1poe() 119 vcpu = ctxt_to_vcpu(ctxt); in ctxt_has_ras() 130 vcpu = ctxt_to_vcpu(ctxt); in ctxt_has_sctlr2() 141 if (ctxt_has_tcrx(ctxt)) { in __sysreg_save_el1_state() 164 if (ctxt_has_mte(ctxt)) { in __sysreg_save_el1_state() [all …]
|
| A D | debug-sr.h | 107 struct kvm_cpu_context *ctxt) in __debug_save_state() argument 117 ctxt_sys_reg(ctxt, MDCCINT_EL1) = read_sysreg(mdccint_el1); in __debug_save_state() 121 struct kvm_cpu_context *ctxt) in __debug_restore_state() argument 131 write_sysreg(ctxt_sys_reg(ctxt, MDCCINT_EL1), mdccint_el1); in __debug_restore_state() 145 guest_ctxt = &vcpu->arch.ctxt; in __debug_switch_to_guest_common() 164 guest_ctxt = &vcpu->arch.ctxt; in __debug_switch_to_host_common()
|
| A D | switch.h | 513 hcr = __ctxt_sys_reg(&vcpu->arch.ctxt, HCR_EL2); in ___deactivate_traps() 561 &vcpu->arch.ctxt.fp_regs.fpsr, in __hyp_sve_restore_guest() 715 __fpsimd_restore_state(&vcpu->arch.ctxt.fp_regs); in kvm_hyp_handle_fpsimd() 796 if (ctxt->offset.vm_offset) in hyp_timer_get_offset() 797 offset += *kern_hyp_va(ctxt->offset.vm_offset); in hyp_timer_get_offset() 798 if (ctxt->offset.vcpu_offset) in hyp_timer_get_offset() 799 offset += *kern_hyp_va(ctxt->offset.vcpu_offset); in hyp_timer_get_offset() 811 struct arch_timer_context *ctxt; in kvm_handle_cntxct() local 841 ctxt = vcpu_ptimer(vcpu); in kvm_handle_cntxct() 853 ctxt = vcpu_vtimer(vcpu); in kvm_handle_cntxct() [all …]
|
| /arch/x86/kvm/ |
| A D | emulate.c | 252 ctxt->ops->write_gpr(ctxt, reg, ctxt->_regs[reg]); in writeback_registers() 932 rc = ctxt->ops->fetch(ctxt, linear, ctxt->fetch.end, in __do_insn_fetch_bytes() 3005 ctxt->_eip = ctxt->eip; in emulator_task_switch() 3282 if (ctxt->ops->set_cr(ctxt, cr_num, ctxt->src.val)) in em_cr_write() 3450 ctxt->_eip = ctxt->eip; in em_hypercall() 3532 ctxt->dst.val = ctxt->ops->get_cr(ctxt, 0); in em_smsw() 3538 ctxt->ops->set_cr(ctxt, 0, (ctxt->ops->get_cr(ctxt, 0) & ~0x0eul) in em_lmsw() 3577 ctxt->ops->pio_out_emulated(ctxt, ctxt->src.bytes, ctxt->dst.val, in em_out() 4746 ctxt->_eip = ctxt->eip; in x86_decode_insn() 5310 ctxt->ops->halt(ctxt); in x86_emulate_insn() [all …]
|
| A D | kvm_emulate.h | 391 #define KVM_EMULATOR_BUG_ON(cond, ctxt) \ argument 396 ctxt->ops->vm_bugged(ctxt); \ 538 if (!(ctxt->regs_valid & (1 << nr))) { in reg_read() 539 ctxt->regs_valid |= 1 << nr; in reg_read() 540 ctxt->_regs[nr] = ctxt->ops->read_gpr(ctxt, nr); in reg_read() 542 return ctxt->_regs[nr]; in reg_read() 553 ctxt->regs_valid |= 1 << nr; in reg_write() 554 ctxt->regs_dirty |= 1 << nr; in reg_write() 555 return &ctxt->_regs[nr]; in reg_write() 560 reg_read(ctxt, nr); in reg_rmw() [all …]
|
| A D | smm.c | 463 struct kvm_vcpu *vcpu = ctxt->vcpu; in rsm_load_state_32() 468 ctxt->_eip = smstate->eip; in rsm_load_state_32() 471 *reg_write(ctxt, i) = smstate->gprs[i]; in rsm_load_state_32() 506 ctxt->interruptibility = (u8)smstate->int_shadow; in rsm_load_state_32() 515 struct kvm_vcpu *vcpu = ctxt->vcpu; in rsm_load_state_64() 520 *reg_write(ctxt, i) = smstate->gprs[15 - i]; in rsm_load_state_64() 522 ctxt->_eip = smstate->rip; in rsm_load_state_64() 559 ctxt->interruptibility = (u8)smstate->int_shadow; in rsm_load_state_64() 567 struct kvm_vcpu *vcpu = ctxt->vcpu; in emulator_leave_smm() 639 ret = rsm_load_state_64(ctxt, &smram.smram64); in emulator_leave_smm() [all …]
|
| A D | x86.c | 7840 if (ctxt->gpa_available && emulator_can_use_gpa(ctxt) && in emulator_read_write_onepage() 8606 if (!ctxt) { in alloc_emulate_ctxt() 8611 ctxt->vcpu = vcpu; in alloc_emulate_ctxt() 8615 return ctxt; in alloc_emulate_ctxt() 8627 ctxt->tf = (ctxt->eflags & X86_EFLAGS_TF) != 0; in init_emulate_ctxt() 8651 ctxt->op_bytes = 2; in kvm_inject_realmode_interrupt() 8653 ctxt->_eip = ctxt->eip + inc_eip; in kvm_inject_realmode_interrupt() 8659 ctxt->eip = ctxt->_eip; in kvm_inject_realmode_interrupt() 8721 ctxt->fetch.end - ctxt->fetch.data); in prepare_emulation_ctxt_failure_exit() 9098 ctxt->eip = (u32)ctxt->_eip; in x86_emulate_instruction() [all …]
|
| /arch/x86/coco/sev/ |
| A D | vc-handle.c | 53 ctxt->fi.error_code = 0; in vc_slow_virt_to_phys() 95 ctxt->fi.error_code = 0; in vc_ioio_check() 105 ctxt->regs->orig_ax = ctxt->fi.error_code; in vc_forward_exception() 115 write_cr2(ctxt->fi.cr2); in vc_forward_exception() 143 ctxt->fi.cr2 = ctxt->regs->ip; in __vc_decode_user_insn() 153 if (!insn_decode_from_regs(&ctxt->insn, ctxt->regs, buffer, insn_bytes)) in __vc_decode_user_insn() 171 ctxt->fi.cr2 = ctxt->regs->ip; in __vc_decode_kern_insn() 449 ctxt->regs->orig_ax = ctxt->fi.error_code; in vc_early_forward_exception() 459 offset = insn_get_modrm_rm_off(&ctxt->insn, ctxt->regs); in vc_insn_get_rm() 477 ref = insn_get_addr_ref(&ctxt->insn, ctxt->regs); in vc_do_mmio() [all …]
|
| A D | vc-shared.c | 7 u8 modrm = ctxt->insn.modrm.value; in vc_check_opcode_bytes() 107 memset(ctxt, 0, sizeof(*ctxt)); in vc_init_em_ctxt() 108 ctxt->regs = regs; in vc_init_em_ctxt() 111 ret = vc_decode_insn(ctxt); in vc_init_em_ctxt() 118 ctxt->regs->ip += ctxt->insn.length; in vc_finish_insn() 126 ctxt->fi.vector = X86_TRAP_PF; in vc_insn_string_check() 127 ctxt->fi.error_code = X86_PF_USER; in vc_insn_string_check() 128 ctxt->fi.cr2 = address; in vc_insn_string_check() 211 struct insn *insn = &ctxt->insn; in vc_ioio_exitinfo() 498 ctxt->regs->ax = ghcb->save.rax; in vc_handle_rdtsc() [all …]
|
| /arch/x86/power/ |
| A D | cpu.c | 91 store_idt(&ctxt->idt); in __save_processor_state() 102 store_tr(ctxt->tr); in __save_processor_state() 125 ctxt->cr0 = read_cr0(); in __save_processor_state() 126 ctxt->cr2 = read_cr2(); in __save_processor_state() 131 msr_save_context(ctxt); in __save_processor_state() 208 if (ctxt->cr4) in __restore_processor_state() 213 __write_cr4(ctxt->cr4); in __restore_processor_state() 215 write_cr3(ctxt->cr3); in __restore_processor_state() 216 write_cr2(ctxt->cr2); in __restore_processor_state() 217 write_cr0(ctxt->cr0); in __restore_processor_state() [all …]
|
| /arch/arm64/kvm/hyp/nvhe/ |
| A D | sysreg-sr.c | 21 void __sysreg_save_state_nvhe(struct kvm_cpu_context *ctxt) in __sysreg_save_state_nvhe() argument 23 __sysreg_save_el1_state(ctxt); in __sysreg_save_state_nvhe() 24 __sysreg_save_common_state(ctxt); in __sysreg_save_state_nvhe() 25 __sysreg_save_user_state(ctxt); in __sysreg_save_state_nvhe() 26 __sysreg_save_el2_return_state(ctxt); in __sysreg_save_state_nvhe() 29 void __sysreg_restore_state_nvhe(struct kvm_cpu_context *ctxt) in __sysreg_restore_state_nvhe() argument 31 u64 midr = ctxt_midr_el1(ctxt); in __sysreg_restore_state_nvhe() 33 __sysreg_restore_el1_state(ctxt, midr, ctxt_sys_reg(ctxt, MPIDR_EL1)); in __sysreg_restore_state_nvhe() 34 __sysreg_restore_common_state(ctxt); in __sysreg_restore_state_nvhe() 35 __sysreg_restore_user_state(ctxt); in __sysreg_restore_state_nvhe() [all …]
|
| A D | ffa.c | 100 cpu_reg(ctxt, 0) = res->a0; in ffa_set_retval() 101 cpu_reg(ctxt, 1) = res->a1; in ffa_set_retval() 102 cpu_reg(ctxt, 2) = res->a2; in ffa_set_retval() 103 cpu_reg(ctxt, 3) = res->a3; in ffa_set_retval() 192 struct kvm_cpu_context *ctxt) in do_ffa_rxtx_map() argument 196 DECLARE_REG(u32, npages, ctxt, 3); in do_ffa_rxtx_map() 273 DECLARE_REG(u32, id, ctxt, 1); in do_ffa_rxtx_unmap() 433 DECLARE_REG(u32, len, ctxt, 1); in __do_ffa_mem_xfer() 529 DECLARE_REG(u32, flags, ctxt, 3); in do_ffa_mem_reclaim() 640 DECLARE_REG(u32, id, ctxt, 1); in do_ffa_features() [all …]
|
| /arch/x86/boot/compressed/ |
| A D | sev-handle-vc.c | 41 enum es_result vc_decode_insn(struct es_em_ctxt *ctxt) in vc_decode_insn() argument 46 memcpy(buffer, (unsigned char *)ctxt->regs->ip, MAX_INSN_SIZE); in vc_decode_insn() 66 static enum es_result vc_write_mem(struct es_em_ctxt *ctxt, in vc_write_mem() argument 74 static enum es_result vc_read_mem(struct es_em_ctxt *ctxt, in vc_read_mem() argument 98 struct es_em_ctxt ctxt; in do_boot_stage2_vc() local 105 result = vc_init_em_ctxt(&ctxt, regs, exit_code); in do_boot_stage2_vc() 109 result = vc_check_opcode_bytes(&ctxt, exit_code); in do_boot_stage2_vc() 116 result = vc_handle_rdtsc(boot_ghcb, &ctxt, exit_code); in do_boot_stage2_vc() 119 result = vc_handle_ioio(boot_ghcb, &ctxt); in do_boot_stage2_vc() 122 result = vc_handle_cpuid(boot_ghcb, &ctxt); in do_boot_stage2_vc() [all …]
|
| /arch/arm64/include/asm/ |
| A D | kvm_asm.h | 311 .macro get_vcpu_ptr vcpu, ctxt 312 get_host_ctxt \ctxt, \vcpu 313 ldr \vcpu, [\ctxt, #HOST_CONTEXT_VCPU] 316 .macro get_loaded_vcpu vcpu, ctxt 318 ldr \vcpu, [\ctxt, #HOST_CONTEXT_VCPU] 321 .macro set_loaded_vcpu vcpu, ctxt, tmp 350 .macro save_callee_saved_regs ctxt 360 .macro restore_callee_saved_regs ctxt 371 .macro save_sp_el0 ctxt, tmp 373 str \tmp, [\ctxt, #CPU_SP_EL0_OFFSET] [all …]
|
| A D | kvm_ptrauth.h | 105 #define __ptrauth_save_key(ctxt, key) \ 109 ctxt_sys_reg(ctxt, key ## KEYLO_EL1) = __val; \ 111 ctxt_sys_reg(ctxt, key ## KEYHI_EL1) = __val; \ 114 #define ptrauth_save_keys(ctxt) \ 116 __ptrauth_save_key(ctxt, APIA); \ 117 __ptrauth_save_key(ctxt, APIB); \ 118 __ptrauth_save_key(ctxt, APDA); \ 119 __ptrauth_save_key(ctxt, APDB); \ 120 __ptrauth_save_key(ctxt, APGA); \
|
| A D | kvm_hyp.h | 95 void __sysreg_save_state_nvhe(struct kvm_cpu_context *ctxt); 96 void __sysreg_restore_state_nvhe(struct kvm_cpu_context *ctxt); 100 void sysreg_save_host_state_vhe(struct kvm_cpu_context *ctxt); 101 void sysreg_restore_host_state_vhe(struct kvm_cpu_context *ctxt); 102 void sysreg_save_guest_state_vhe(struct kvm_cpu_context *ctxt); 103 void sysreg_restore_guest_state_vhe(struct kvm_cpu_context *ctxt);
|
| /arch/arm64/kvm/hyp/vhe/ |
| A D | sysreg-sr.c | 54 if (ctxt_has_tcrx(&vcpu->arch.ctxt)) { in __sysreg_save_vel2_state() 62 if (ctxt_has_s1poe(&vcpu->arch.ctxt)) in __sysreg_save_vel2_state() 81 if (ctxt_has_sctlr2(&vcpu->arch.ctxt)) in __sysreg_save_vel2_state() 126 if (ctxt_has_tcrx(&vcpu->arch.ctxt)) { in __sysreg_restore_vel2_state() 134 if (ctxt_has_s1poe(&vcpu->arch.ctxt)) in __sysreg_restore_vel2_state() 146 if (ctxt_has_sctlr2(&vcpu->arch.ctxt)) in __sysreg_restore_vel2_state() 162 __sysreg_save_common_state(ctxt); in sysreg_save_host_state_vhe() 168 __sysreg_save_common_state(ctxt); in sysreg_save_guest_state_vhe() 169 __sysreg_save_el2_return_state(ctxt); in sysreg_save_guest_state_vhe() 175 __sysreg_restore_common_state(ctxt); in sysreg_restore_host_state_vhe() [all …]
|
| /arch/x86/xen/ |
| A D | smp_pv.c | 227 struct vcpu_guest_context *ctxt; in cpu_initialize_context() local 234 ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); in cpu_initialize_context() 235 if (ctxt == NULL) { in cpu_initialize_context() 248 ctxt->flags = VGCF_IN_KERNEL; in cpu_initialize_context() 250 ctxt->user_regs.ds = __USER_DS; in cpu_initialize_context() 251 ctxt->user_regs.es = __USER_DS; in cpu_initialize_context() 264 ctxt->gdt_frames[0] = gdt_mfn; in cpu_initialize_context() 272 ctxt->kernel_ss = __KERNEL_DS; in cpu_initialize_context() 276 ctxt->event_callback_eip = in cpu_initialize_context() 278 ctxt->failsafe_callback_eip = in cpu_initialize_context() [all …]
|
| A D | pmu.c | 30 #define field_offset(ctxt, field) ((void *)((uintptr_t)ctxt + \ argument 31 (uintptr_t)ctxt->field)) 201 struct xen_pmu_intel_ctxt *ctxt; in xen_intel_pmu_emulate() local 215 reg = &ctxt->global_ovf_ctrl; in xen_intel_pmu_emulate() 218 reg = &ctxt->global_status; in xen_intel_pmu_emulate() 221 reg = &ctxt->global_ctrl; in xen_intel_pmu_emulate() 224 reg = &ctxt->fixed_ctrl; in xen_intel_pmu_emulate() 264 struct xen_pmu_amd_ctxt *ctxt; in xen_amd_pmu_emulate() local 276 ctxt = &xenpmu_data->pmu.c.amd; in xen_amd_pmu_emulate() 316 struct xen_pmu_amd_ctxt *ctxt; in xen_amd_read_pmc() local [all …]
|
| /arch/arm64/kvm/hyp/include/nvhe/ |
| A D | trap_handler.h | 14 #define cpu_reg(ctxt, r) (ctxt)->regs.regs[r] argument 15 #define DECLARE_REG(type, name, ctxt, reg) \ argument 16 type name = (type)cpu_reg(ctxt, (reg))
|
| /arch/x86/boot/startup/ |
| A D | sev-shared.c | 156 ctxt->fi.vector = v; in verify_exception_info() 159 ctxt->fi.error_code = info >> 32; in verify_exception_info() 252 struct es_em_ctxt ctxt; in svsm_perform_ghcb_protocol() local 275 switch (verify_exception_info(ghcb, &ctxt)) { in svsm_perform_ghcb_protocol() 279 vc_forward_exception(&ctxt); in svsm_perform_ghcb_protocol() 289 struct es_em_ctxt *ctxt, in sev_es_ghcb_hv_call() argument 304 return verify_exception_info(ghcb, ctxt); in sev_es_ghcb_hv_call() 489 if (sev_cpuid_hv(ghcb, ctxt, leaf)) in snp_cpuid_hv() 501 snp_cpuid_hv(ghcb, ctxt, &leaf_hv); in snp_cpuid_postprocess() 520 snp_cpuid_hv(ghcb, ctxt, &leaf_hv); in snp_cpuid_postprocess() [all …]
|
| /arch/arm64/kvm/ |
| A D | reset.c | 161 free_page((unsigned long)vcpu->arch.ctxt.vncr_array); in kvm_arm_vcpu_destroy() 222 memset(&vcpu->arch.ctxt.fp_regs, 0, sizeof(vcpu->arch.ctxt.fp_regs)); in kvm_reset_vcpu() 223 vcpu->arch.ctxt.spsr_abt = 0; in kvm_reset_vcpu() 224 vcpu->arch.ctxt.spsr_und = 0; in kvm_reset_vcpu() 225 vcpu->arch.ctxt.spsr_irq = 0; in kvm_reset_vcpu() 226 vcpu->arch.ctxt.spsr_fiq = 0; in kvm_reset_vcpu()
|
| A D | fpsimd.c | 76 fp_state.st = &vcpu->arch.ctxt.fp_regs; in kvm_arch_vcpu_ctxsync_fp() 80 fp_state.svcr = __ctxt_sys_reg(&vcpu->arch.ctxt, SVCR); in kvm_arch_vcpu_ctxsync_fp() 81 fp_state.fpmr = __ctxt_sys_reg(&vcpu->arch.ctxt, FPMR); in kvm_arch_vcpu_ctxsync_fp()
|
| A D | arch_timer.c | 69 struct kvm_vcpu *vcpu = ctxt->vcpu; in timer_get_ctl() 71 switch(arch_timer_ctx_index(ctxt)) { in timer_get_ctl() 88 struct kvm_vcpu *vcpu = ctxt->vcpu; in timer_get_cval() 90 switch(arch_timer_ctx_index(ctxt)) { in timer_get_cval() 107 struct kvm_vcpu *vcpu = ctxt->vcpu; in timer_set_ctl() 109 switch(arch_timer_ctx_index(ctxt)) { in timer_set_ctl() 129 struct kvm_vcpu *vcpu = ctxt->vcpu; in timer_set_cval() 131 switch(arch_timer_ctx_index(ctxt)) { in timer_set_cval() 151 if (!ctxt->offset.vm_offset) { in timer_set_offset() 1066 ctxt->vcpu = vcpu; in timer_context_init() [all …]
|
| /arch/x86/kernel/cpu/mtrr/ |
| A D | mtrr.h | 49 void set_mtrr_done(struct set_mtrr_context *ctxt); 50 void set_mtrr_cache_disable(struct set_mtrr_context *ctxt); 51 void set_mtrr_prepare_save(struct set_mtrr_context *ctxt);
|