summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorXiao Guangrong <xiaoguangrong@cn.fujitsu.com>2010-08-28 19:24:13 +0800
committerAvi Kivity <avi@redhat.com>2010-10-24 10:51:48 +0200
commit365fb3fdf6769d3553999d8eb6cc2a8c56c747c1 (patch)
treee8ac38a587a4cf2cac88df4580e7112c15b13e14 /include
parentbc32ce2152406431acf4daf4a81dc1664bb7b91b (diff)
downloadlinux-365fb3fdf6769d3553999d8eb6cc2a8c56c747c1.tar.gz
linux-365fb3fdf6769d3553999d8eb6cc2a8c56c747c1.tar.bz2
linux-365fb3fdf6769d3553999d8eb6cc2a8c56c747c1.zip
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')
-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);
void kvm_set_page_accessed(struct page *page);
pfn_t hva_to_pfn_atomic(struct kvm *kvm, unsigned long addr);
+pfn_t gfn_to_pfn_atomic(struct kvm *kvm, gfn_t gfn);
pfn_t gfn_to_pfn(struct kvm *kvm, gfn_t gfn);
pfn_t gfn_to_pfn_memslot(struct kvm *kvm,
struct kvm_memory_slot *slot, gfn_t gfn);