]> xenbits.xensource.com Git - xen.git/commit
x86/vIRQ: IRR and TMR race condition bug fix
authorYongan Liu <Liuyongan@huawei.com>
Tue, 17 Jan 2012 11:34:43 +0000 (11:34 +0000)
committerYongan Liu <Liuyongan@huawei.com>
Tue, 17 Jan 2012 11:34:43 +0000 (11:34 +0000)
commitc3219b8d23a5e2c174e9c347cde9eb9ec50b0598
tree7b99a0d50f1bfae8aa8de5fa50f6487dcfe67d89
parent91cd3a58e3276aa90d30b17851ae48987a7b2307
x86/vIRQ: IRR and TMR race condition bug fix

In vlapic_set_irq, we set the IRR register before the TMR. And the IRR
might be serviced before setting TMR, and even worse EOI might occur
before TMR setting, in which case the vioapic_update_EOI won't be
called, and further prevent all the subsequent interrupt injecting.
Reorder setting the TMR and IRR will solve the problem.

Besides, KVM has fixed a similar bug in:
http://markmail.org/search/?q=APIC_TMR#query:APIC_TMR+page:1+mid:rphs4f7lkxjlldne+state:results

Signed-off-by: Yongan Liu<Liuyongan@huawei.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Committed-by: Jan Beulich <jbeulich@suse.com>
xen-unstable changeset:   24453:02b92d035f64
xen-unstable date:        Thu Jan 05 09:29:59 2012 +0100
xen/arch/x86/hvm/vlapic.c