On 07/04/2012 08:40 AM, Alexander Graf wrote: > On 25.06.2012, at 14:26, Mihai Caraman wrote: >> @@ -381,7 +386,8 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu >> *vcpu, >> set_guest_esr(vcpu, vcpu->arch.queued_esr); >> if (update_dear == true) >> set_guest_dear(vcpu, vcpu->arch.queued_dear); >> - kvmppc_set_msr(vcpu, vcpu->arch.shared->msr & msr_mask); >> + kvmppc_set_msr(vcpu, (vcpu->arch.shared->msr & msr_mask) >> + | msr_cm); > > Please split this computation out into its own variable and apply the masking > regardless. Something like > > ulong new_msr = vcpu->arch.shared->msr; > if (vcpu->arch.epcr & SPRN_EPCR_ICM) > new_msr |= MSR_CM; > new_msr &= msr_mask; > kvmppc_set_msr(vcpu, new_msr);
This will fail to clear MSR[CM] in the odd but legal situation where you have MSR[CM] set but EPCR[ICM] unset. -Scott -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html