android_kernel_xiaomi_sdm845/arch/x86/kvm
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
..
emulate.c KVM: x86 emulator: limit instructions to 15 bytes 2009-12-03 09:32:25 +02:00
i8254.c x86: i8254.c: Add pr_fmt(fmt) 2009-12-10 08:57:50 +01:00
i8254.h KVM: PIT support for HPET legacy mode 2009-09-10 08:33:12 +03:00
i8259.c KVM: Move IO APIC to its own lock 2009-12-03 09:32:08 +02:00
irq.c KVM: Remove irq_pending bitmap 2009-06-10 11:48:57 +03:00
irq.h KVM: x86: disallow multiple KVM_CREATE_IRQCHIP 2009-12-03 09:32:23 +02:00
Kconfig KVM: x86 shared msr infrastructure 2009-12-03 09:32:21 +02:00
kvm_cache_regs.h KVM: Cache pdptrs 2009-09-10 08:32:46 +03:00
kvm_timer.h KVM: Use pointer to vcpu instead of vcpu_id in timer code. 2009-09-10 08:32:52 +03:00
lapic.c KVM: Fix race between APIC TMR and IRR 2010-01-25 12:26:36 -02:00
lapic.h KVM: x2apic interface to lapic 2009-09-10 08:33:08 +03:00
Makefile KVM: Move assigned device code to own file 2009-12-03 09:32:09 +02:00
mmu.c KVM: Allow internal errors reported to userspace to carry extra data 2009-12-03 09:32:24 +02:00
mmu.h KVM: MMU: add kvm_mmu_get_spte_hierarchy helper 2009-09-10 08:32:56 +03:00
mmutrace.h KVM: Trace shadow page lifecycle 2009-09-10 08:33:10 +03:00
paging_tmpl.h KVM: MMU: remove prefault from invlpg handler 2009-12-27 13:36:30 -02:00
svm.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-12-14 09:58:24 -08:00
timer.c KVM: Drop useless atomic test from timer function 2009-09-10 08:32:57 +03:00
trace.h KVM: SVM: Add tracepoint for skinit instruction 2009-12-03 09:32:16 +02:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: VMX: Fix comparison of guest efer with stale host value 2009-12-03 09:34:20 +02:00
x86.c KVM: x86: Extend KVM_SET_VCPU_EVENTS with selective updates 2009-12-27 13:36:33 -02:00
x86.h KVM: Add Directed EOI support to APIC emulation 2009-09-10 08:33:07 +03:00