diff options
author | Xiao Guangrong <guangrong.xiao@linux.intel.com> | 2015-05-11 22:55:21 +0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-05-19 20:52:36 +0200 |
commit | edc90b7dc4ceef62ef0ad9cc6c3f5dc770e83ad2 (patch) | |
tree | 36a2ab127ab4f6a01fc33190abf3e06682f6ceba /arch/x86/include/asm/kvm_host.h | |
parent | 428e3d08574b77876ea5e71f294f91bd8afa51b5 (diff) | |
download | op-kernel-dev-edc90b7dc4ceef62ef0ad9cc6c3f5dc770e83ad2.zip op-kernel-dev-edc90b7dc4ceef62ef0ad9cc6c3f5dc770e83ad2.tar.gz |
KVM: MMU: fix SMAP virtualization
KVM may turn a user page to a kernel page when kernel writes a readonly
user page if CR0.WP = 1. This shadow page entry will be reused after
SMAP is enabled so that kernel is allowed to access this user page
Fix it by setting SMAP && !CR0.WP into shadow page's role and reset mmu
once CR4.SMAP is updated
Signed-off-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/include/asm/kvm_host.h')
-rw-r--r-- | arch/x86/include/asm/kvm_host.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 8b661d1..bbb8f4e 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -207,6 +207,7 @@ union kvm_mmu_page_role { unsigned nxe:1; unsigned cr0_wp:1; unsigned smep_andnot_wp:1; + unsigned smap_andnot_wp:1; }; }; |