]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: SVM: Make sure KERNEL_GS_BASE is valid when loading gs_index
authorJoerg Roedel <joerg.roedel@amd.com>
Fri, 14 Jan 2011 15:45:01 +0000 (16:45 +0100)
committerAvi Kivity <avi@redhat.com>
Wed, 9 Feb 2011 16:31:36 +0000 (18:31 +0200)
commit934e744eb45d5ff6d708938c195056b3255f8af8
tree9bb299eb2b957b47371d09fd33a307882e7b9e7a
parent1adfbdf65d96d4e3c72b4449fc4f0b29f1ddc427
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>
arch/x86/kvm/svm.c