]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: Fix race between APIC TMR and IRR
authorAvi Kivity <avi@redhat.com>
Tue, 29 Dec 2009 10:42:16 +0000 (12:42 +0200)
committerMarcelo Tosatti <mtosatti@redhat.com>
Mon, 25 Jan 2010 14:26:36 +0000 (12:26 -0200)
commitf40f6405d5ec330eb89cb34369250a7c1201ba3c
tree5d7563cd69d710cf0948e48b26ff4b0cf197a51b
parentdd7785231b451ef779f52e8610f028da53b51088
KVM: Fix race between APIC TMR and IRR

When we queue an interrupt to the local apic, we set the IRR before the TMR.
The vcpu can pick up the IRR and inject the interrupt before setting the TMR,
and perhaps even EOI it, causing incorrect behaviour.

The race is really insignificant since it can only occur on the first
interrupt (usually following interrupts will not change TMR), but it's better
closed than open.

Fixed by reordering setting the TMR vs IRR.

Cc: stable@kernel.org
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/lapic.c