2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-20 11:13:58 +08:00
linux-next/arch
Marcelo Tosatti e9571ed54b KVM: fix kvm_vcpu_kick vs __vcpu_run race
There is a window open between testing of pending IRQ's
and assignment of guest_mode in __vcpu_run.

Injection of IRQ's can race with __vcpu_run as follows:

CPU0                                CPU1
kvm_x86_ops->run()
vcpu->guest_mode = 0                SET_IRQ_LINE ioctl
..
kvm_x86_ops->inject_pending_irq
kvm_cpu_has_interrupt()

                                    apic_test_and_set_irr()
                                    kvm_vcpu_kick
                                    if (vcpu->guest_mode)
                                        send_ipi()

vcpu->guest_mode = 1

So move guest_mode=1 assignment before ->inject_pending_irq, and make
sure that it won't reorder after it.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
2008-04-27 18:21:32 +03:00
..
alpha alpha: unbreak OSF/1 (a.out) binaries 2008-04-24 08:35:47 -07:00
arm Merge branch 'irq-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2008-04-24 08:42:21 -07:00
avr32 avr32: Add hardware power-down function call 2008-04-19 20:40:11 -04:00
blackfin [Blackfin] arch: add include/boot .gitignore files 2008-04-25 08:29:11 +08:00
cris Generic semaphore implementation 2008-04-17 10:42:34 -04:00
frv frv: unexport kmap_atomic_to_page 2008-04-21 16:03:13 -07:00
h8300 Generic semaphore implementation 2008-04-17 10:42:34 -04:00
ia64 KVM: add ioctls to save/store mpstate 2008-04-27 18:21:16 +03:00
m32r Generic semaphore implementation 2008-04-17 10:42:34 -04:00
m68k arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
m68knommu Generic semaphore implementation 2008-04-17 10:42:34 -04:00
mips arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
mn10300 PCI: remove initial bios sort of PCI devices on x86 2008-04-20 21:46:58 -07:00
parisc Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6 2008-04-21 15:58:35 -07:00
powerpc [POWERPC] Add zImage.iseries to arch/powerpc/boot/.gitignore 2008-04-25 09:48:13 +10:00
ppc [POWERPC] Add strncmp to arch/ppc 2008-04-24 20:57:34 +10:00
s390 KVM: add ioctls to save/store mpstate 2008-04-27 18:21:16 +03:00
sh Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6 2008-04-21 15:58:35 -07:00
sparc sparc: cleanup after SunOS binary emulation removal 2008-04-23 23:32:18 -07:00
sparc64 [SPARC64]: Wrap SMP IPIs with irq_enter()/irq_exit(). 2008-04-25 03:11:37 -07:00
um x86, bitops: select the generic bitmap search functions 2008-04-26 19:21:17 +02:00
v850 arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
x86 KVM: fix kvm_vcpu_kick vs __vcpu_run race 2008-04-27 18:21:32 +03:00
xtensa Generic semaphore implementation 2008-04-17 10:42:34 -04:00
.gitignore arch: Ignore arch/i386 and arch/x86_64 2008-01-19 21:29:39 -08:00
Kconfig Kprobes: indicate kretprobe support in Kconfig 2008-03-04 16:35:11 -08:00