forked from Minki/linux
KVM: MMU: Add link_shadow_page() helper
To simplify the process of fetching an spte, add a helper that links a shadow page to an spte. Reviewed-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
4a994358b9
commit
32ef26a359
@ -1482,6 +1482,16 @@ static void shadow_walk_next(struct kvm_shadow_walk_iterator *iterator)
|
||||
--iterator->level;
|
||||
}
|
||||
|
||||
static void link_shadow_page(u64 *sptep, struct kvm_mmu_page *sp)
|
||||
{
|
||||
u64 spte;
|
||||
|
||||
spte = __pa(sp->spt)
|
||||
| PT_PRESENT_MASK | PT_ACCESSED_MASK
|
||||
| PT_WRITABLE_MASK | PT_USER_MASK;
|
||||
*sptep = spte;
|
||||
}
|
||||
|
||||
static void kvm_mmu_page_unlink_children(struct kvm *kvm,
|
||||
struct kvm_mmu_page *sp)
|
||||
{
|
||||
|
@ -309,7 +309,7 @@ static u64 *FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr,
|
||||
{
|
||||
unsigned access = gw->pt_access;
|
||||
struct kvm_mmu_page *sp;
|
||||
u64 spte, *sptep = NULL;
|
||||
u64 *sptep = NULL;
|
||||
int direct;
|
||||
gfn_t table_gfn;
|
||||
int r;
|
||||
@ -395,10 +395,7 @@ static u64 *FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr,
|
||||
}
|
||||
}
|
||||
|
||||
spte = __pa(sp->spt)
|
||||
| PT_PRESENT_MASK | PT_ACCESSED_MASK
|
||||
| PT_WRITABLE_MASK | PT_USER_MASK;
|
||||
*sptep = spte;
|
||||
link_shadow_page(sptep, sp);
|
||||
}
|
||||
|
||||
return sptep;
|
||||
|
Loading…
Reference in New Issue
Block a user