linux/arch
Nadav Har'El 3633cfc3e8 nEPT: Fix cr3 handling in nested exit and entry
The existing code for handling cr3 and related VMCS fields during nested
exit and entry wasn't correct in all cases:

If L2 is allowed to control cr3 (and this is indeed the case in nested EPT),
during nested exit we must copy the modified cr3 from vmcs02 to vmcs12, and
we forgot to do so. This patch adds this copy.

If L0 isn't controlling cr3 when running L2 (i.e., L0 is using EPT), and
whoever does control cr3 (L1 or L2) is using PAE, the processor might have
saved PDPTEs and we should also save them in vmcs12 (and restore later).

Reviewed-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
Signed-off-by: Nadav Har'El <nyh@il.ibm.com>
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
Signed-off-by: Xinhao Xu <xinhao.xu@intel.com>
Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2013-08-07 15:57:34 +02:00
..
alpha Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-07-14 11:42:26 -07:00
arc Couple of Platform updates (Device Tree files primarily) given that the 2013-07-10 10:11:26 -07:00
arm KVM: Introduce kvm_arch_memslots_updated() 2013-07-18 12:29:25 +02:00
arm64 Merge tag 'kvm-3.11-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2013-07-10 18:17:41 -07:00
avr32 net: rename busy poll socket op and globals 2013-07-10 17:08:27 -07:00
blackfin blackfin updates for Linux 3.11 2013-07-10 10:12:58 -07:00
c6x Merge branch 'akpm' (updates from Andrew Morton) 2013-07-03 17:12:13 -07:00
cris net: rename busy poll socket op and globals 2013-07-10 17:08:27 -07:00
frv net: rename busy poll socket op and globals 2013-07-10 17:08:27 -07:00
h8300 net: rename busy poll socket op and globals 2013-07-10 17:08:27 -07:00
hexagon mm/hexagon: prepare for removing num_physpages and simplify mem_init() 2013-07-03 16:07:36 -07:00
ia64 KVM: Introduce kvm_arch_memslots_updated() 2013-07-18 12:29:25 +02:00
m32r net: rename busy poll socket op and globals 2013-07-10 17:08:27 -07:00
m68k Merge branch 'akpm' (updates from Andrew Morton) 2013-07-03 17:12:13 -07:00
metag arch/metag fixes for v3.11 2013-07-10 10:14:35 -07:00
microblaze Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze 2013-07-10 10:16:07 -07:00
mips KVM: Introduce kvm_arch_memslots_updated() 2013-07-18 12:29:25 +02:00
mn10300 net: rename busy poll socket op and globals 2013-07-10 17:08:27 -07:00
openrisc mm: invoke oom-killer from remaining unconverted page fault handlers 2013-07-09 10:33:20 -07:00
parisc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-07-14 11:42:26 -07:00
powerpc KVM: Introduce kvm_arch_memslots_updated() 2013-07-18 12:29:25 +02:00
s390 KVM: s390: Make KVM_HVA_ERR_BAD usable on s390 2013-07-29 09:03:53 +02:00
score mm: invoke oom-killer from remaining unconverted page fault handlers 2013-07-09 10:33:20 -07:00
sh Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
sparc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-07-14 11:42:26 -07:00
tile mm: remove free_area_cache 2013-07-10 18:11:34 -07:00
um mm/um: prepare for removing num_physpages and simplify mem_init() 2013-07-03 16:07:37 -07:00
unicore32 reboot: move arch/x86 reboot= handling to generic kernel 2013-07-09 10:33:29 -07:00
x86 nEPT: Fix cr3 handling in nested exit and entry 2013-08-07 15:57:34 +02:00
xtensa Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-07-13 17:42:22 -07:00
.gitignore
Kconfig mm: soft-dirty bits for user memory changes tracking 2013-07-03 16:07:26 -07:00