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

Commit 25ddda07 authored by Simon Guo's avatar Simon Guo Committed by Paul Mackerras
Browse files

KVM: PPC: Book3S PR: Transition to Suspended state when injecting interrupt



This patch simulates interrupt behavior per Power ISA while injecting
interrupt in PR KVM:
- When interrupt happens, transactional state should be suspended.

kvmppc_mmu_book3s_64_reset_msr() will be invoked when injecting an
interrupt. This patch performs this ISA logic in
kvmppc_mmu_book3s_64_reset_msr().

Signed-off-by: default avatarSimon Guo <wei.guo.simon@gmail.com>
Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
parent caa3be92
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -38,7 +38,16 @@

static void kvmppc_mmu_book3s_64_reset_msr(struct kvm_vcpu *vcpu)
{
	kvmppc_set_msr(vcpu, vcpu->arch.intr_msr);
	unsigned long msr = vcpu->arch.intr_msr;
	unsigned long cur_msr = kvmppc_get_msr(vcpu);

	/* If transactional, change to suspend mode on IRQ delivery */
	if (MSR_TM_TRANSACTIONAL(cur_msr))
		msr |= MSR_TS_S;
	else
		msr |= cur_msr & MSR_TS_MASK;

	kvmppc_set_msr(vcpu, msr);
}

static struct kvmppc_slb *kvmppc_mmu_book3s_64_find_slbe(