Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 03660ba2 authored by Alexander Graf's avatar Alexander Graf Committed by Avi Kivity
Browse files

KVM: PPC: Booke: only prepare to enter when we enter



So far, we've always called prepare_to_enter even when all we did was return
to the host. This patch changes that semantic to only call prepare_to_enter
when we actually want to get back into the guest.

Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 7cc1e8ee
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -464,7 +464,7 @@ int kvmppc_core_prepare_to_enter(struct kvm_vcpu *vcpu)
 *
 * returns !0 if a signal is pending and check_signal is true
 */
static int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu, bool check_signal)
static int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
{
	int r = 0;

@@ -477,7 +477,7 @@ static int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu, bool check_signal)
			continue;
		}

		if (check_signal && signal_pending(current)) {
		if (signal_pending(current)) {
			r = 1;
			break;
		}
@@ -509,7 +509,7 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
	}

	local_irq_disable();
	if (kvmppc_prepare_to_enter(vcpu, true)) {
	if (kvmppc_prepare_to_enter(vcpu)) {
		kvm_run->exit_reason = KVM_EXIT_INTR;
		ret = -EINTR;
		goto out;
@@ -946,12 +946,14 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
	 * To avoid clobbering exit_reason, only check for signals if we
	 * aren't already exiting to userspace for some other reason.
	 */
	if (!(r & RESUME_HOST)) {
		local_irq_disable();
	if (kvmppc_prepare_to_enter(vcpu, !(r & RESUME_HOST))) {
		if (kvmppc_prepare_to_enter(vcpu)) {
			run->exit_reason = KVM_EXIT_INTR;
			r = (-EINTR << 2) | RESUME_HOST | (r & RESUME_FLAG_NV);
			kvmppc_account_exit(vcpu, SIGNAL_EXITS);
		}
	}

	return r;
}