|
@@ -224,6 +224,12 @@ static void kvmppc_core_vcpu_put_hv(struct kvm_vcpu *vcpu)
|
|
|
|
|
|
static void kvmppc_set_msr_hv(struct kvm_vcpu *vcpu, u64 msr)
|
|
|
{
|
|
|
+ /*
|
|
|
+ * Check for illegal transactional state bit combination
|
|
|
+ * and if we find it, force the TS field to a safe state.
|
|
|
+ */
|
|
|
+ if ((msr & MSR_TS_MASK) == MSR_TS_MASK)
|
|
|
+ msr &= ~MSR_TS_MASK;
|
|
|
vcpu->arch.shregs.msr = msr;
|
|
|
kvmppc_end_cede(vcpu);
|
|
|
}
|