linux/arch
Avi Kivity a5d36f82c4 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>
2010-01-25 12:26:36 -02:00
..
alpha alpha: cpumask_of_node() should handle -1 as a node 2010-01-14 13:21:35 -05:00
arm Merge branch 'for-linus/samsung' of git://git.fluff.org/bjdooks/linux 2010-01-21 17:33:23 -08:00
avr32
blackfin
cris
frv
h8300
ia64 [IA64] move fnptr definition inside #ifdef __KERNEL__ 2010-01-08 10:53:28 -08:00
m32r
m68k m68knommu: fix definitions of __pa() and __va() 2010-01-12 20:51:45 -08:00
m68knommu m68knommu: fix invalid flags on coldfire pit clocksource 2010-01-16 12:15:38 -08:00
microblaze microblaze: pci_controller->arch_data really is a struct device_node * 2010-01-18 16:36:07 +01:00
mips MIPS: Ignore vmlinux.* 2010-01-12 18:19:38 +01:00
mn10300 mn10300: update the ASB2303 defconfig 2010-01-11 09:34:10 -08:00
parisc
powerpc Merge commit 'gcl/merge' into merge 2010-01-15 13:40:17 +11:00
s390 [S390] unwire sys_recvmmsg again 2010-01-13 20:44:46 +01:00
score mm: make totalhigh_pages unsigned long 2010-01-11 09:34:03 -08:00
sh sh64: wire up sys_accept4. 2010-01-19 17:00:31 +09:00
sparc
um Unrot uml mconsole a bit 2010-01-14 09:05:26 -05:00
x86 KVM: Fix race between APIC TMR and IRR 2010-01-25 12:26:36 -02:00
xtensa
.gitignore
Kconfig