Message ID | 1389789599-20729-1-git-send-email-drjones@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Il 15/01/2014 13:39, Andrew Jones ha scritto: > 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. > > Signed-off-by: Andrew Jones <drjones@redhat.com> > --- > 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 1673940cf9c35..775702f649ca6 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 > Thanks Drew, applying this patch to master branch. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2014-01-15 13:40, Paolo Bonzini wrote: > Il 15/01/2014 13:39, Andrew Jones ha scritto: >> 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. >> >> Signed-off-by: Andrew Jones <drjones@redhat.com> >> --- >> 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 1673940cf9c35..775702f649ca6 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 >> > > Thanks Drew, applying this patch to master branch. > Thanks for catching this. Paolo, please make sure this one makes it to stable as well. Jan
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 1673940cf9c35..775702f649ca6 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
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. Signed-off-by: Andrew Jones <drjones@redhat.com> --- arch/x86/kvm/lapic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)