On Mon, 2014-03-03 at 17:43 +0100, Paolo Bonzini wrote: > From: Andrew Jones <drjones@xxxxxxxxxx> > > For 3.8.13.w, 3.10, 3.11.10.w, 3.12, 3.13. Thanks very much Paolo. Queued-up for 3.8-stable. -Kamal > Commit e66d2ae7c67bd moved the assignment > vcpu->arch.apic_base = value above a condition with > (vcpu->arch.apic_base ^ value), causing that check > to always fail. Use old_value, vcpu->arch.apic_base's > old value, in the condition instead. > > Fixes: e66d2ae7c67bd > Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > (cherry picked from commit 0dce7cd67fd9055c4a2ff278f8af1431e646d346) > --- > arch/x86/kvm/lapic.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c > index 1673940cf9c3..775702f649ca 100644 > --- a/arch/x86/kvm/lapic.c > +++ b/arch/x86/kvm/lapic.c > @@ -1355,7 +1355,7 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value) > vcpu->arch.apic_base = value; > > /* update jump label if enable bit changes */ > - if ((vcpu->arch.apic_base ^ value) & MSR_IA32_APICBASE_ENABLE) { > + if ((old_value ^ value) & MSR_IA32_APICBASE_ENABLE) { > if (value & MSR_IA32_APICBASE_ENABLE) > static_key_slow_dec_deferred(&apic_hw_disabled); > else
Attachment:
signature.asc
Description: This is a digitally signed message part