/kernel/linux/linux-5.10/arch/x86/kvm/ |
H A D | x86.h | 53 vcpu->arch.exception.injected = false; in kvm_clear_exception_queue() 59 vcpu->arch.interrupt.injected = true; in kvm_queue_interrupt() 66 vcpu->arch.interrupt.injected = false; in kvm_clear_interrupt_queue() 71 return vcpu->arch.exception.injected || vcpu->arch.interrupt.injected || in kvm_event_needs_reinjection()
|
H A D | irq.c | 46 * FIXME: interrupt.injected represents an interrupt whose in kvm_cpu_has_extint() 49 * on interrupt.injected to know if there is a pending in kvm_cpu_has_extint() 53 * pending interrupt or should re-inject an injected in kvm_cpu_has_extint() 57 return v->arch.interrupt.injected; in kvm_cpu_has_extint()
|
H A D | x86.c | 551 if (!vcpu->arch.exception.pending && !vcpu->arch.exception.injected) { in kvm_multiple_exception() 563 vcpu->arch.exception.injected = true; in kvm_multiple_exception() 574 vcpu->arch.exception.injected = false; in kvm_multiple_exception() 603 vcpu->arch.exception.injected = false; in kvm_multiple_exception() 4225 * instruction boundary and with no events half-injected. in kvm_vcpu_ready_for_interrupt_injection() 4386 events->exception.injected = 0; in kvm_vcpu_ioctl_x86_get_vcpu_events() 4389 events->exception.injected = vcpu->arch.exception.injected; in kvm_vcpu_ioctl_x86_get_vcpu_events() 4393 * pending and injected exceptions when in kvm_vcpu_ioctl_x86_get_vcpu_events() 4397 events->exception.injected | in kvm_vcpu_ioctl_x86_get_vcpu_events() [all...] |
/kernel/linux/linux-6.6/arch/x86/kvm/ |
H A D | x86.h | 110 vcpu->arch.exception.injected = false; in kvm_clear_exception_queue() 117 vcpu->arch.interrupt.injected = true; in kvm_queue_interrupt() 124 vcpu->arch.interrupt.injected = false; in kvm_clear_interrupt_queue() 129 return vcpu->arch.exception.injected || vcpu->arch.interrupt.injected || in kvm_event_needs_reinjection()
|
H A D | irq.c | 51 * FIXME: interrupt.injected represents an interrupt whose in kvm_cpu_has_extint() 54 * on interrupt.injected to know if there is a pending in kvm_cpu_has_extint() 58 * pending interrupt or should re-inject an injected in kvm_cpu_has_extint() 62 return v->arch.interrupt.injected; in kvm_cpu_has_extint()
|
H A D | x86.c | 632 ex->injected = false; in kvm_queue_exception_vmexit() 658 * previously injected exception is not checked because it was checked in kvm_multiple_exception() 660 * injected the exception, in which case it's exempt from interception. in kvm_multiple_exception() 669 if (!vcpu->arch.exception.pending && !vcpu->arch.exception.injected) { in kvm_multiple_exception() 680 vcpu->arch.exception.injected = true; in kvm_multiple_exception() 691 vcpu->arch.exception.injected = false; in kvm_multiple_exception() 716 * Synthesize #DF. Clear the previously injected or pending in kvm_multiple_exception() 719 vcpu->arch.exception.injected = false; in kvm_multiple_exception() 4977 * instruction boundary and with no events half-injected. in kvm_vcpu_ready_for_interrupt_injection() 5164 * of the injected exceptio in kvm_vcpu_ioctl_x86_get_vcpu_events() [all...] |
/kernel/linux/linux-5.10/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 320 __u8 injected; member 327 __u8 injected; member 333 __u8 injected; member
|
/kernel/linux/linux-5.10/tools/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 320 __u8 injected; member 327 __u8 injected; member 333 __u8 injected; member
|
/kernel/linux/patches/linux-6.6/prebuilts/usr/include/asm-x86/asm/ |
H A D | kvm.h | 272 __u8 injected; member 279 __u8 injected; member 285 __u8 injected; member
|
/kernel/linux/patches/linux-5.10/prebuilts/usr/include/asm-x86/asm/ |
H A D | kvm.h | 272 __u8 injected; member 279 __u8 injected; member 285 __u8 injected; member
|
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/x86_64/ |
H A D | nested_exceptions_test.c | 18 /* Arbitrary 32-bit error code injected by this test. */ 198 TEST_ASSERT(!events.exception.injected, in queue_ss_exception() 199 "Vector %d unexpectedly injected", events.exception.nr); in queue_ss_exception() 203 events.exception.injected = inject; in queue_ss_exception() 211 * Verify KVM_{G,S}ET_EVENTS play nice with pending vs. injected exceptions 213 * honors L1 exception intercept controls when a #SS is pending/injected, 257 * #SS interception and re-enter L2 to request #GP (via injected #SS). in main()
|
H A D | sync_regs_test.c | 85 * Set an exception as pending *and* injected while KVM is processing events. 87 * requesting that an exception be injected. 99 WRITE_ONCE(events->exception.injected, 1); in race_events_inj_pen() 191 * to the unhandled #GPs being injected. VMX preserves state in race_sync_regs()
|
/kernel/linux/linux-6.6/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 336 __u8 injected; member 343 __u8 injected; member 349 __u8 injected; member
|
/kernel/linux/linux-6.6/tools/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 336 __u8 injected; member 343 __u8 injected; member 349 __u8 injected; member
|
/kernel/linux/linux-5.10/arch/x86/include/asm/ |
H A D | kvm_host.h | 624 bool injected; member 634 bool injected; member
|
/kernel/linux/linux-5.10/arch/x86/kvm/svm/ |
H A D | nested.c | 337 if (vcpu->arch.exception.injected) { in nested_vmcb_save_pending_event() 350 } else if (vcpu->arch.interrupt.injected) { in nested_vmcb_save_pending_event() 879 * the vmexit is injected by svm_check_nested_events. in nested_svm_intercept()
|
/kernel/linux/linux-6.6/arch/x86/include/asm/ |
H A D | kvm_host.h | 707 bool injected; member 815 /* Exceptions to be injected to the guest. */ 821 bool injected; member 1223 * which cannot be injected when the AVIC is enabled, thus AVIC
|
/kernel/linux/linux-6.6/arch/x86/kvm/svm/ |
H A D | nested.c | 447 if (vcpu->arch.exception.injected) { in nested_save_pending_event_to_vmcb12() 460 } else if (vcpu->arch.interrupt.injected) { in nested_save_pending_event_to_vmcb12() 701 * stack for injected soft exceptions/interrupts. If nrips is exposed in nested_vmcb02_prepare_control() 1087 * no event can be injected in L1. in nested_svm_vmexit() 1325 * the vmexit is injected by svm_check_nested_events. in nested_svm_intercept() 1425 * previously injected event, the pending exception occurred while said in svm_check_nested_events()
|
/kernel/linux/linux-5.10/arch/x86/kvm/vmx/ |
H A D | nested.c | 3683 * while vectoring a different exception (injected events are never in vmcs12_save_pending_event() 3696 } else if (vcpu->arch.exception.injected) { in vmcs12_save_pending_event() 3717 } else if (vcpu->arch.interrupt.injected) { in vmcs12_save_pending_event() 3800 * injected error code for VM-Entry. Drop the bits to mimic in nested_vmx_inject_exception_vmexit() 5848 * An MTF VM-exit may be injected into the guest by setting the in nested_vmx_exit_handled_mtf() 5894 * will be injected with nested_ept_inject_page_fault() in nested_vmx_l0_wants_exit()
|
/kernel/linux/linux-6.6/arch/x86/kvm/vmx/ |
H A D | nested.c | 461 * set bits 31:16 and VMX disallows setting bits 31:16 in the injected in nested_vmx_is_exception_vmexit() 3742 * while vectoring a different exception (injected events are never in vmcs12_save_pending_event() 3755 } else if (vcpu->arch.exception.injected) { in vmcs12_save_pending_event() 3776 } else if (vcpu->arch.interrupt.injected) { in vmcs12_save_pending_event() 3885 * injected error code for VM-Entry. Drop the bits to mimic in nested_vmx_inject_exception_vmexit() 3912 * this will return false positives if a to-be-injected code breakpoint #DB is 3935 * KVM, but could theoretically be injected by userspace. Note, this code is 4060 * previously injected event, the pending exception occurred while said in vmx_check_nested_events() 6137 * An MTF VM-exit may be injected into the guest by setting the in nested_vmx_exit_handled_mtf() 6183 * will be injected wit in nested_vmx_l0_wants_exit() [all...] |
H A D | vmx.c | 5044 /* An NMI must not be injected into L2 if it's supposed to VM-Exit. */ in vmx_nmi_allowed() 5067 * An IRQ must not be injected into L2 if it's supposed to VM-Exit, in vmx_interrupt_allowed() 5166 * unconditionally injected into the guest, which is the pre split lock 5170 * only injected into the guest when: 5838 (kvm_is_exception_pending(vcpu) || vcpu->arch.exception.injected); in vmx_emulation_required_with_pending_exception() 6891 * Newly recognized interrupts are injected via either virtual interrupt in vmx_sync_pir_to_irr() 6897 * VM-Exit to L1. If L1 doesn't want to exit, the interrupt is injected in vmx_sync_pir_to_irr()
|