kvm: x86/mmu: Warn on linking when sp->unsync_children
Since the commit 65855ed8b034 ("KVM: X86: Synchronize the shadow pagetable before link it"), no sp would be linked with sp->unsync_children = 1. So make it WARN if it is the case. Signed-off-by: Lai Jiangshan <jiangshan.ljs@antgroup.com> Message-Id: <20221212090106.378206-1-jiangshanlai@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
1567037614
commit
641e680858
@ -2355,7 +2355,16 @@ static void __link_shadow_page(struct kvm *kvm,
|
||||
|
||||
mmu_page_add_parent_pte(cache, sp, sptep);
|
||||
|
||||
if (sp->unsync_children || sp->unsync)
|
||||
/*
|
||||
* The non-direct sub-pagetable must be updated before linking. For
|
||||
* L1 sp, the pagetable is updated via kvm_sync_page() in
|
||||
* kvm_mmu_find_shadow_page() without write-protecting the gfn,
|
||||
* so sp->unsync can be true or false. For higher level non-direct
|
||||
* sp, the pagetable is updated/synced via mmu_sync_children() in
|
||||
* FNAME(fetch)(), so sp->unsync_children can only be false.
|
||||
* WARN_ON_ONCE() if anything happens unexpectedly.
|
||||
*/
|
||||
if (WARN_ON_ONCE(sp->unsync_children) || sp->unsync)
|
||||
mark_unsync(sptep);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user