mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-06 10:45:16 +07:00
[PATCH] KVM: MMU: kvm_mmu_put_page() only removes one link to the page
... and so must not free it unconditionally. Move the freeing to kvm_mmu_zap_page(). Signed-off-by: Avi Kivity <avi@qumranet.com> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
697fe2e24a
commit
cc4529efc7
@ -521,10 +521,6 @@ static void kvm_mmu_put_page(struct kvm_vcpu *vcpu,
|
|||||||
u64 *parent_pte)
|
u64 *parent_pte)
|
||||||
{
|
{
|
||||||
mmu_page_remove_parent_pte(page, parent_pte);
|
mmu_page_remove_parent_pte(page, parent_pte);
|
||||||
kvm_mmu_page_unlink_children(vcpu, page);
|
|
||||||
hlist_del(&page->hash_link);
|
|
||||||
list_del(&page->link);
|
|
||||||
list_add(&page->link, &vcpu->free_pages);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void kvm_mmu_zap_page(struct kvm_vcpu *vcpu,
|
static void kvm_mmu_zap_page(struct kvm_vcpu *vcpu,
|
||||||
@ -546,6 +542,10 @@ static void kvm_mmu_zap_page(struct kvm_vcpu *vcpu,
|
|||||||
kvm_mmu_put_page(vcpu, page, parent_pte);
|
kvm_mmu_put_page(vcpu, page, parent_pte);
|
||||||
*parent_pte = 0;
|
*parent_pte = 0;
|
||||||
}
|
}
|
||||||
|
kvm_mmu_page_unlink_children(vcpu, page);
|
||||||
|
hlist_del(&page->hash_link);
|
||||||
|
list_del(&page->link);
|
||||||
|
list_add(&page->link, &vcpu->free_pages);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int kvm_mmu_unprotect_page(struct kvm_vcpu *vcpu, gfn_t gfn)
|
static int kvm_mmu_unprotect_page(struct kvm_vcpu *vcpu, gfn_t gfn)
|
||||||
|
Loading…
Reference in New Issue
Block a user