aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/kvm_host.h
diff options
context:
space:
mode:
authorXiao Guangrong <xiaoguangrong@cn.fujitsu.com>2010-08-28 07:24:13 -0400
committerAvi Kivity <avi@redhat.com>2010-10-24 04:51:48 -0400
commit365fb3fdf6769d3553999d8eb6cc2a8c56c747c1 (patch)
treee8ac38a587a4cf2cac88df4580e7112c15b13e14 /include/linux/kvm_host.h
parentbc32ce2152406431acf4daf4a81dc1664bb7b91b (diff)
KVM: MMU: rewrite audit_mappings_page() function
There is a bugs in this function, we call gfn_to_pfn() and kvm_mmu_gva_to_gpa_read() in atomic context(kvm_mmu_audit() is called under the spinlock(mmu_lock)'s protection). This patch fix it by: - introduce gfn_to_pfn_atomic instead of gfn_to_pfn - get the mapping gfn from kvm_mmu_page_get_gfn() And it adds 'notrap' ptes check in unsync/direct sps Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'include/linux/kvm_host.h')
-rw-r--r--include/linux/kvm_host.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index b837ec80885d..f2ecdd52032b 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -300,6 +300,7 @@ void kvm_set_page_dirty(struct page *page);
300void kvm_set_page_accessed(struct page *page); 300void kvm_set_page_accessed(struct page *page);
301 301
302pfn_t hva_to_pfn_atomic(struct kvm *kvm, unsigned long addr); 302pfn_t hva_to_pfn_atomic(struct kvm *kvm, unsigned long addr);
303pfn_t gfn_to_pfn_atomic(struct kvm *kvm, gfn_t gfn);
303pfn_t gfn_to_pfn(struct kvm *kvm, gfn_t gfn); 304pfn_t gfn_to_pfn(struct kvm *kvm, gfn_t gfn);
304pfn_t gfn_to_pfn_memslot(struct kvm *kvm, 305pfn_t gfn_to_pfn_memslot(struct kvm *kvm,
305 struct kvm_memory_slot *slot, gfn_t gfn); 306 struct kvm_memory_slot *slot, gfn_t gfn);