On 06.07.2012, at 01:51, Scott Wood <scottwood@xxxxxxxxxxxxx> wrote: > 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. Ah. Good point. Then leave the msr_mask logic as before and only stretch it out into its own variable. Alex > > -Scott > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html