Lines Matching full:injected

828 	ex->injected = false;  in kvm_queue_exception_vmexit()
848 * previously injected exception is not checked because it was checked in kvm_multiple_exception()
850 * injected the exception, in which case it's exempt from interception. in kvm_multiple_exception()
859 if (!vcpu->arch.exception.pending && !vcpu->arch.exception.injected) { in kvm_multiple_exception()
870 vcpu->arch.exception.injected = true; in kvm_multiple_exception()
881 vcpu->arch.exception.injected = false; in kvm_multiple_exception()
906 * Synthesize #DF. Clear the previously injected or pending in kvm_multiple_exception()
909 vcpu->arch.exception.injected = false; in kvm_multiple_exception()
5159 * instruction boundary and with no events half-injected. in kvm_vcpu_ready_for_interrupt_injection()
5346 * of the injected exception. in kvm_vcpu_ioctl_x86_get_vcpu_events()
5350 !vcpu->arch.exception.injected) in kvm_vcpu_ioctl_x86_get_vcpu_events()
5376 events->exception.injected = ex->injected; in kvm_vcpu_ioctl_x86_get_vcpu_events()
5380 * pending and injected exceptions when in kvm_vcpu_ioctl_x86_get_vcpu_events()
5384 events->exception.injected |= ex->pending; in kvm_vcpu_ioctl_x86_get_vcpu_events()
5392 events->interrupt.injected = in kvm_vcpu_ioctl_x86_get_vcpu_events()
5393 vcpu->arch.interrupt.injected && !vcpu->arch.interrupt.soft; in kvm_vcpu_ioctl_x86_get_vcpu_events()
5397 events->nmi.injected = vcpu->arch.nmi_injected; in kvm_vcpu_ioctl_x86_get_vcpu_events()
5437 events->exception.injected = 0; in kvm_vcpu_ioctl_x86_set_vcpu_events()
5445 if ((events->exception.injected || events->exception.pending) && in kvm_vcpu_ioctl_x86_set_vcpu_events()
5460 * pending exceptions, already-injected exceptions are not subject to in kvm_vcpu_ioctl_x86_set_vcpu_events()
5461 * intercpetion. Note, userspace that conflates pending and injected in kvm_vcpu_ioctl_x86_set_vcpu_events()
5462 * is hosed, and will incorrectly convert an injected exception into a in kvm_vcpu_ioctl_x86_set_vcpu_events()
5469 vcpu->arch.exception.injected = events->exception.injected; in kvm_vcpu_ioctl_x86_set_vcpu_events()
5477 vcpu->arch.interrupt.injected = events->interrupt.injected; in kvm_vcpu_ioctl_x86_set_vcpu_events()
5484 vcpu->arch.nmi_injected = events->nmi.injected; in kvm_vcpu_ioctl_x86_set_vcpu_events()
10217 * is injected as intercepted #PF VM-Exits for AMD's Paged Real Mode do in kvm_inject_exception()
10225 vcpu->arch.exception.injected); in kvm_inject_exception()
10231 * Check for any event (interrupt or exception) that is ready to be injected,
10234 * been injected into the guest, and "injected" events, i.e. events that were
10235 * injected as part of a previous VM-Enter, but weren't successfully delivered
10236 * and need to be re-injected.
10242 * I.e. for exceptions and re-injected events, NOT invoking this on instruction
10246 * that are injected directly from L1 to L2) and doesn't explicitly track
10258 * injected on the restarted instruction instead of being deferred until the
10287 * to/from L2 is needed, as any event that has already been injected in kvm_check_and_inject_events()
10292 * injected event, KVM intercepted said exception, and KVM ultimately in kvm_check_and_inject_events()
10296 * "Injected" interrupts can also collide with pending exceptions if in kvm_check_and_inject_events()
10308 if (vcpu->arch.exception.injected) in kvm_check_and_inject_events()
10314 else if (vcpu->arch.interrupt.injected) in kvm_check_and_inject_events()
10319 * exceptions on top of injected exceptions that do not VM-Exit should in kvm_check_and_inject_events()
10320 * either morph to #DF or, sadly, override the injected exception. in kvm_check_and_inject_events()
10322 WARN_ON_ONCE(vcpu->arch.exception.injected && in kvm_check_and_inject_events()
10332 * there may now be events that can be injected into L1. in kvm_check_and_inject_events()
10340 * VM-Exits cannot be injected (flag should _never_ be set). in kvm_check_and_inject_events()
10342 WARN_ON_ONCE(vcpu->arch.exception_vmexit.injected || in kvm_check_and_inject_events()
10346 * New events, other than exceptions, cannot be injected if KVM needs in kvm_check_and_inject_events()
10378 vcpu->arch.exception.injected = true; in kvm_check_and_inject_events()
10388 * Finally, inject interrupt events. If an event cannot be injected in kvm_check_and_inject_events()
10391 * and can architecturally be injected, but we cannot do it right now: in kvm_check_and_inject_events()
10455 * is done emulating and should only propagate the to-be-injected event in kvm_check_and_inject_events()
10555 * When APICv gets disabled, we may still have injected interrupts in __kvm_vcpu_update_apicv()
11550 ex->injected = false; in kvm_arch_vcpu_ioctl_run()
11724 if (vcpu->arch.interrupt.injected && !vcpu->arch.interrupt.soft) in __get_sregs()
12078 * Read rflags as long as potentially injected trace flags are still in kvm_arch_vcpu_ioctl_set_guest_debug()