Lines Matching refs:injected

632 	ex->injected = false;
658 * previously injected exception is not checked because it was checked
660 * injected the exception, in which case it's exempt from interception.
669 if (!vcpu->arch.exception.pending && !vcpu->arch.exception.injected) {
680 vcpu->arch.exception.injected = true;
691 vcpu->arch.exception.injected = false;
716 * Synthesize #DF. Clear the previously injected or pending
719 vcpu->arch.exception.injected = false;
4977 * instruction boundary and with no events half-injected.
5164 * of the injected exception.
5168 !vcpu->arch.exception.injected)
5194 events->exception.injected = ex->injected;
5198 * pending and injected exceptions when
5202 events->exception.injected |= ex->pending;
5210 events->interrupt.injected =
5211 vcpu->arch.interrupt.injected && !vcpu->arch.interrupt.soft;
5215 events->nmi.injected = vcpu->arch.nmi_injected;
5255 events->exception.injected = 0;
5263 if ((events->exception.injected || events->exception.pending) &&
5278 * pending exceptions, already-injected exceptions are not subject to
5279 * intercpetion. Note, userspace that conflates pending and injected
5280 * is hosed, and will incorrectly convert an injected exception into a
5287 vcpu->arch.exception.injected = events->exception.injected;
5295 vcpu->arch.interrupt.injected = events->interrupt.injected;
5302 vcpu->arch.nmi_injected = events->nmi.injected;
10017 * is injected as intercepted #PF VM-Exits for AMD's Paged Real Mode do
10025 vcpu->arch.exception.injected);
10031 * Check for any event (interrupt or exception) that is ready to be injected,
10034 * been injected into the guest, and "injected" events, i.e. events that were
10035 * injected as part of a previous VM-Enter, but weren't successfully delivered
10036 * and need to be re-injected.
10042 * I.e. for exceptions and re-injected events, NOT invoking this on instruction
10046 * that are injected directly from L1 to L2) and doesn't explicitly track
10058 * injected on the restarted instruction instead of being deferred until the
10087 * to/from L2 is needed, as any event that has already been injected
10092 * injected event, KVM intercepted said exception, and KVM ultimately
10108 if (vcpu->arch.exception.injected)
10114 else if (vcpu->arch.interrupt.injected)
10119 * exceptions on top of injected exceptions that do not VM-Exit should
10120 * either morph to #DF or, sadly, override the injected exception.
10122 WARN_ON_ONCE(vcpu->arch.exception.injected &&
10132 * there may now be events that can be injected into L1.
10140 * VM-Exits cannot be injected (flag should _never_ be set).
10142 WARN_ON_ONCE(vcpu->arch.exception_vmexit.injected ||
10146 * New events, other than exceptions, cannot be injected if KVM needs
10178 vcpu->arch.exception.injected = true;
10188 * Finally, inject interrupt events. If an event cannot be injected
10191 * and can architecturally be injected, but we cannot do it right now:
10252 * is done emulating and should only propagate the to-be-injected event
10352 * When APICv gets disabled, we may still have injected interrupts
11183 ex->injected = false;
11349 if (vcpu->arch.interrupt.injected && !vcpu->arch.interrupt.soft)
11686 * Read rflags as long as potentially injected trace flags are still