lkml.org 
[lkml]   [2026]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v4 3/7] KVM: SVM: Inject #HV when Restricted Injection is active
On Fri, Apr 24, 2026 at 05:42:07PM +0000, Melody Wang wrote:
> +void sev_snp_cancel_injection(struct kvm_vcpu *vcpu)
> +{
> + struct vcpu_svm *svm = to_svm(vcpu);
> + struct kvm_host_map hvdb_map;
> + struct hvdb *hvdb;
> +
> + if (!sev_snp_is_rinj_active(vcpu))
> + return;
> +
> + if (!svm->vmcb->control.event_inj)
> + return;
> +
> + if (WARN_ONCE((svm->vmcb->control.event_inj & SVM_EVTINJ_VEC_MASK) != HV_VECTOR,
> + "Restricted Injection enabled, %u vector not supported\n",
> + svm->vmcb->control.event_inj & SVM_EVTINJ_VEC_MASK))
> + return;
> +
> + /*
> + * Copy the information in the doorbell page into the event injection
> + * fields to complete the cancellation flow.
> + */
> + hvdb = map_hvdb(vcpu, &hvdb_map);
> + if (!hvdb)
> + return;
> +
> + if (!hvdb->events.pending_events) {
> + /* No pending events, then event_inj field should be 0 */
> + WARN_ON_ONCE(svm->vmcb->control.event_inj);
> + goto out;
> + }
> +
> + /* Copy info back into event_inj field (replaces #HV) */
> + svm->vmcb->control.event_inj = SVM_EVTINJ_VALID;
> +
> + if (hvdb->events.vector)
> + svm->vmcb->control.event_inj |= hvdb->events.vector |
> + SVM_EVTINJ_TYPE_INTR;
> +
> + hvdb->events.pending_events = 0;

Does this also need to clear no_further_signal?

-Joerg

\
 
 \ /
  Last update: 2026-04-28 13:34    [W:0.134 / U:1.569 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog