提交 3201b5d9 编写于 作者: A Avi Kivity

KVM: MMU: Fix setting the accessed bit on non-speculative sptes

The accessed bit was accidentally turned on in a random flag word, rather
than, the spte itself, which was lucky, since it used the non-EPT compatible
PT_ACCESSED_MASK.

Fix by turning the bit on in the spte and changing it to use the portable
accessed mask.
Signed-off-by: NAvi Kivity <avi@qumranet.com>
上级 171d595d
...@@ -1192,7 +1192,7 @@ static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte, ...@@ -1192,7 +1192,7 @@ static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte,
*/ */
spte = shadow_base_present_pte | shadow_dirty_mask; spte = shadow_base_present_pte | shadow_dirty_mask;
if (!speculative) if (!speculative)
pte_access |= PT_ACCESSED_MASK; spte |= shadow_accessed_mask;
if (!dirty) if (!dirty)
pte_access &= ~ACC_WRITE_MASK; pte_access &= ~ACC_WRITE_MASK;
if (pte_access & ACC_EXEC_MASK) if (pte_access & ACC_EXEC_MASK)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册