linux_dsm_epyc7002/arch
Paolo Bonzini 5f0b819995 KVM: MMU: fix reserved bit check for ept=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0
KVM has special logic to handle pages with pte.u=1 and pte.w=0 when
CR0.WP=1.  These pages' SPTEs flip continuously between two states:
U=1/W=0 (user and supervisor reads allowed, supervisor writes not allowed)
and U=0/W=1 (supervisor reads and writes allowed, user writes not allowed).

When SMEP is in effect, however, U=0 will enable kernel execution of
this page.  To avoid this, KVM also sets NX=1 in the shadow PTE together
with U=0, making the two states U=1/W=0/NX=gpte.NX and U=0/W=1/NX=1.
When guest EFER has the NX bit cleared, the reserved bit check thinks
that the latter state is invalid; teach it that the smep_andnot_wp case
will also use the NX bit of SPTEs.

Cc: stable@vger.kernel.org
Reviewed-by: Xiao Guangrong <guangrong.xiao@linux.inel.com>
Fixes: c258b62b26
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-10 11:26:10 +01:00
..
alpha
arc arc: SMP: CONFIG_ARC_IPI_DBG cleanup 2016-02-24 14:15:39 +05:30
arm ARM: SoC fixes 2016-03-06 14:14:54 -08:00
arm64 arm64 fix: 2016-03-04 17:43:40 -08:00
avr32
blackfin
c6x
cris
frv
h8300
hexagon
ia64
m32r m32r: fix build failure due to SMP and MMU 2016-02-05 18:10:40 -08:00
m68k m68k/defconfig: Update defconfigs for v4.5-rc1 2016-02-01 10:35:38 +01:00
metag
microblaze
mips MIPS: traps: Fix SIGFPE information leak from do_ov' and do_trap_or_bp' 2016-03-04 22:52:32 +01:00
mn10300
nios2
openrisc
parisc parisc: Wire up copy_file_range syscall 2016-03-01 23:21:11 +01:00
powerpc Merge branch 'kvm-ppc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into HEAD 2016-03-08 12:46:50 +01:00
s390 KVM: s390: correct fprs on SIGP (STOP AND) STORE STATUS 2016-03-08 12:47:01 +01:00
score
sh
sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2016-03-01 08:57:34 -08:00
tile
um um: Export pm_power_off 2016-03-05 22:17:52 +01:00
unicore32
x86 KVM: MMU: fix reserved bit check for ept=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0 2016-03-10 11:26:10 +01:00
xtensa
.gitignore
Kconfig