1
linux/arch/x86/kvm
Joerg Roedel 893a5ab6ee KVM: SVM: Make sure KERNEL_GS_BASE is valid when loading gs_index
The gs_index loading code uses the swapgs instruction to
switch to the user gs_base temporarily. This is unsave in an
lightweight exit-path in KVM on AMD because the
KERNEL_GS_BASE MSR is switches lazily. An NMI happening in
the critical path of load_gs_index may use the wrong GS_BASE
value then leading to unpredictable behavior, e.g. a
triple-fault.

This patch fixes the issue by making sure that load_gs_index
is called only with a valid KERNEL_GS_BASE value loaded in
KVM.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2011-02-09 18:31:36 +02:00
..
emulate.c KVM: SVM: copy instruction bytes from VMCB 2011-01-12 11:31:07 +02:00
i8254.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
i8254.h KVM: x86: Introduce a workqueue to deliver PIT timer interrupts 2010-08-01 10:46:49 +03:00
i8259.c KVM: i8259: initialize isr_ack 2011-01-02 11:52:48 +02:00
irq.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
irq.h KVM: Convert PIC lock from raw spinlock to ordinary spinlock 2010-10-24 10:52:56 +02:00
Kconfig KVM: Halt vcpu if page it tries to access is swapped out 2011-01-12 11:21:39 +02:00
kvm_cache_regs.h KVM: Fetch guest cr3 from hardware on demand 2011-01-12 11:31:16 +02:00
kvm_timer.h KVM: arch/x86/kvm/kvm_timer.h checkpatch cleanup 2010-05-17 12:14:42 +03:00
lapic.c KVM: Avoid double interrupt injection with vapic 2011-01-12 11:23:36 +02:00
lapic.h KVM: Add HYPER-V apic access MSRs 2010-03-01 12:36:00 -03:00
Makefile KVM: x86: Makefile clean up 2011-01-12 11:29:08 +02:00
mmu_audit.c KVM: MMU: audit: allow audit more guests at the same time 2011-01-12 11:31:17 +02:00
mmu.c thp: mmu_notifier_test_young 2011-01-13 17:32:46 -08:00
mmu.h KVM: MMU: Don't track nested fault info in error-code 2010-10-24 10:52:55 +02:00
mmutrace.h KVM: MMU: support disable/enable mmu audit dynamicly 2010-10-24 10:51:56 +02:00
paging_tmpl.h thp: kvm mmu transparent hugepage support 2011-01-13 17:32:41 -08:00
svm.c KVM: SVM: Make sure KERNEL_GS_BASE is valid when loading gs_index 2011-02-09 18:31:36 +02:00
timer.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
trace.h KVM: Add instruction-set-specific exit qualifications to kvm_exit trace 2011-01-12 11:29:41 +02:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: VMX: when entering real mode align segment base to 16 bytes 2011-01-12 11:31:20 +02:00
x86.c Merge branch 'kvm-updates/2.6.38' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2011-01-13 10:14:24 -08:00
x86.h KVM: SVM: Do not report xsave in supported cpuid 2010-12-08 17:28:37 +02:00