Commit 4198f38a authored by Sean Christopherson's avatar Sean Christopherson
Browse files

KVM: x86: Eliminate "handling" of impossible errors during SUSPEND



Drop KVM's handling of kvm_set_guest_paused() failure when reacting to a
SUSPEND notification, as kvm_set_guest_paused() only "fails" if the vCPU
isn't using kvmclock, and KVM's notifier callback pre-checks that kvmclock
is active.  I.e. barring some bizarre edge case that shouldn't be treated
as an error in the first place, kvm_arch_suspend_notifier() can't fail.

Reviewed-by: default avatarPaul Durrant <paul@xen.org>
Link: https://lore.kernel.org/r/20250201013827.680235-3-seanjc@google.com


Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
parent d9c5ed0a
Loading
Loading
Loading
Loading
+7 −13
Original line number Diff line number Diff line
@@ -6905,21 +6905,15 @@ static int kvm_arch_suspend_notifier(struct kvm *kvm)
{
	struct kvm_vcpu *vcpu;
	unsigned long i;
	int ret = 0;

	kvm_for_each_vcpu(i, vcpu, kvm) {
		if (!vcpu->arch.pv_time.active)
			continue;

		ret = kvm_set_guest_paused(vcpu);
		if (ret) {
			kvm_err("Failed to pause guest VCPU%d: %d\n",
				vcpu->vcpu_id, ret);
			break;
		}
	}
	/*
	 * Ignore the return, marking the guest paused only "fails" if the vCPU
	 * isn't using kvmclock; continuing on is correct and desirable.
	 */
	kvm_for_each_vcpu(i, vcpu, kvm)
		(void)kvm_set_guest_paused(vcpu);

	return ret ? NOTIFY_BAD : NOTIFY_DONE;
	return NOTIFY_DONE;
}

int kvm_arch_pm_notifier(struct kvm *kvm, unsigned long state)