Commit b9595d1d authored by Sean Christopherson's avatar Sean Christopherson
Browse files

KVM: x86: Don't inject PV async #PF if SEND_ALWAYS=0 and guest state is protected

Don't inject PV async #PFs into guests with protected register state, i.e.
SEV-ES and SEV-SNP guests, unless the guest has opted-in to receiving #PFs
at CPL0.  For protected guests, the actual CPL of the guest is unknown.

Note, no sane CoCo guest should enable PV async #PF, but the current state
of Linux-as-a-CoCo-guest isn't entirely sane.

Fixes: add5e2f0 ("KVM: SVM: Add support for the SEV-ES VMSA")
Link: https://lore.kernel.org/r/20250215010609.1199982-2-seanjc@google.com


Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
parent 2428865b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -13387,7 +13387,7 @@ static bool kvm_can_deliver_async_pf(struct kvm_vcpu *vcpu)
		return false;

	if (vcpu->arch.apf.send_user_only &&
	    kvm_x86_call(get_cpl)(vcpu) == 0)
	    (vcpu->arch.guest_state_protected || !kvm_x86_call(get_cpl)(vcpu)))
		return false;

	if (is_guest_mode(vcpu)) {