mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-14 21:01:29 +00:00
KVM: use kvm_release_page_clean to release the page
In kvm_async_pf_wakeup_all, it uses bad_page to generate broadcast wakeup, and uses put_page to release bad_page, the work depends on the fact that bad_page is the normal page. But we will use the error code instead of bad_page, so use kvm_release_page_clean to release the page which will release the error code properly Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
3b2bd2f800
commit
2b4b5af8f8
@ -112,7 +112,7 @@ void kvm_clear_async_pf_completion_queue(struct kvm_vcpu *vcpu)
|
||||
typeof(*work), link);
|
||||
list_del(&work->link);
|
||||
if (work->page)
|
||||
put_page(work->page);
|
||||
kvm_release_page_clean(work->page);
|
||||
kmem_cache_free(async_pf_cache, work);
|
||||
}
|
||||
spin_unlock(&vcpu->async_pf.lock);
|
||||
@ -139,7 +139,7 @@ void kvm_check_async_pf_completion(struct kvm_vcpu *vcpu)
|
||||
list_del(&work->queue);
|
||||
vcpu->async_pf.queued--;
|
||||
if (work->page)
|
||||
put_page(work->page);
|
||||
kvm_release_page_clean(work->page);
|
||||
kmem_cache_free(async_pf_cache, work);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user