linux/arch/x86/kvm
Avi Kivity 3e515705a1 KVM: Ensure all vcpus are consistent with in-kernel irqchip settings
If some vcpus are created before KVM_CREATE_IRQCHIP, then
irqchip_in_kernel() and vcpu->arch.apic will be inconsistent, leading
to potential NULL pointer dereferences.

Fix by:
- ensuring that no vcpus are installed when KVM_CREATE_IRQCHIP is called
- ensuring that a vcpu has an apic if it is installed after KVM_CREATE_IRQCHIP

This is somewhat long winded because vcpu->arch.apic is created without
kvm->lock held.

Based on earlier patch by Michael Ellerman.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Avi Kivity <avi@redhat.com>
2012-03-08 14:10:30 +02:00
..
cpuid.c KVM: SVM: Add support for AMD's OSVW feature in guests 2012-03-05 14:52:21 +02:00
cpuid.h KVM: SVM: Add support for AMD's OSVW feature in guests 2012-03-05 14:52:21 +02:00
emulate.c KVM: x86 emulator: Allow PM/VM86 switch during task switch 2012-03-08 14:10:29 +02:00
i8254.c KVM: x86: Consolidate PIT legacy test 2011-12-27 11:22:30 +02:00
i8254.h
i8259.c KVM: x86: reset edge sense circuit of i8259 on init 2012-03-05 14:57:30 +02:00
irq.c
irq.h KVM: Intelligent device lookup on I/O bus 2011-09-25 19:17:59 +03:00
Kconfig KVM: Expose a version 2 architectural PMU to a guests 2011-12-27 11:24:29 +02:00
kvm_cache_regs.h KVM: MMU: Do not unconditionally read PDPTE from guest memory 2011-09-25 19:18:01 +03:00
kvm_timer.h KVM: emulate lapic tsc deadline timer for guest 2011-10-05 15:34:56 +02:00
lapic.c KVM: Infrastructure for software and hardware based TSC rate scaling 2012-03-08 14:09:35 +02:00
lapic.h KVM: Expose kvm_lapic_local_deliver() 2011-12-27 11:23:39 +02:00
Makefile KVM: Expose a version 2 architectural PMU to a guests 2011-12-27 11:24:29 +02:00
mmu_audit.c KVM: MMU: Remove unused kvm parameter from rmap_next() 2012-03-05 14:52:43 +02:00
mmu.c KVM: Introduce kvm_memory_slot::arch and move lpage_info into it 2012-03-08 14:10:22 +02:00
mmu.h
mmutrace.h KVM: MMU: audit: replace mmu audit tracepoint with jump-label 2011-12-27 11:22:05 +02:00
paging_tmpl.h KVM: MMU: audit: replace mmu audit tracepoint with jump-label 2011-12-27 11:22:05 +02:00
pmu.c KVM: x86 emulator: correctly mask pmc index bits in RDPMC instruction emulation 2012-03-08 14:10:24 +02:00
svm.c KVM: x86 emulator: Allow PM/VM86 switch during task switch 2012-03-08 14:10:29 +02:00
timer.c KVM: x86: Simplify kvm timer handler 2011-12-27 11:17:05 +02:00
trace.h KVM: Use __print_symbolic() for vmexit tracepoints 2011-09-25 19:17:59 +03:00
tss.h
vmx.c KVM: x86 emulator: Fix task switch privilege checks 2012-03-08 14:10:26 +02:00
x86.c KVM: Ensure all vcpus are consistent with in-kernel irqchip settings 2012-03-08 14:10:30 +02:00
x86.h KVM: Move cpuid code to new file 2011-12-27 11:21:49 +02:00