projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9325b1d
)
KVM: MMU: shadow nested paging does not have PKU
author
Paolo Bonzini
<pbonzini@redhat.com>
Mon, 22 Nov 2021 18:01:37 +0000
(13:01 -0500)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Wed, 8 Dec 2021 08:04:44 +0000
(09:04 +0100)
commit
28f091bc2f8c23b7eac2402956b692621be7f9f4
upstream.
Initialize the mask for PKU permissions as if CR4.PKE=0, avoiding
incorrect interpretations of the nested hypervisor's page tables.
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/mmu/mmu.c
patch
|
blob
|
history
diff --git
a/arch/x86/kvm/mmu/mmu.c
b/arch/x86/kvm/mmu/mmu.c
index 0e0f960a0bf8ef4d487b2b409363abcfbfb197de..b313fd3d3c383be7a821d6fbb844c8b0e9e64bf8 100644
(file)
--- a/
arch/x86/kvm/mmu/mmu.c
+++ b/
arch/x86/kvm/mmu/mmu.c
@@
-4852,7
+4852,7
@@
void kvm_init_shadow_npt_mmu(struct kvm_vcpu *vcpu, unsigned long cr0,
struct kvm_mmu *context = &vcpu->arch.guest_mmu;
struct kvm_mmu_role_regs regs = {
.cr0 = cr0,
- .cr4 = cr4,
+ .cr4 = cr4
& ~X86_CR4_PKE
,
.efer = efer,
};
union kvm_mmu_role new_role;
@@
-4916,7
+4916,7
@@
void kvm_init_shadow_ept_mmu(struct kvm_vcpu *vcpu, bool execonly,
context->direct_map = false;
update_permission_bitmask(context, true);
-
update_pkru_bitmask(context)
;
+
context->pkru_mask = 0
;
reset_rsvds_bits_mask_ept(vcpu, context, execonly);
reset_ept_shadow_zero_bits_mask(vcpu, context, execonly);
}