Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 25e23432 authored by Avi Kivity's avatar Avi Kivity
Browse files

KVM: MMU: Don't treat a global pte as such if cr4.pge is cleared



The pte.g bit is meaningless if global pages are disabled; deferring
mmu page synchronization on these ptes will lead to the guest using stale
shadow ptes.

Fixes Vista x86 smp bootloader failure.

Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent fe634fd4
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1669,6 +1669,8 @@ static int set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte,
	u64 mt_mask = shadow_mt_mask;
	struct kvm_mmu_page *sp = page_header(__pa(shadow_pte));

	if (!(vcpu->arch.cr4 & X86_CR4_PGE))
		global = 0;
	if (!global && sp->global) {
		sp->global = 0;
		if (sp->unsync) {