aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/kvm_types.h
diff options
context:
space:
mode:
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>2019-12-05 01:30:51 +0000
committerPaolo Bonzini <pbonzini@redhat.com>2020-01-30 18:45:55 +0100
commit917248144db5d7320655dbb41d3af0b8a0f3d589 (patch)
tree4c865f9aeb61137847ce9d283bc33febded17714 /include/linux/kvm_types.h
parentx86/kvm: Introduce kvm_(un)map_gfn() (diff)
downloadwireguard-linux-917248144db5d7320655dbb41d3af0b8a0f3d589.tar.xz
wireguard-linux-917248144db5d7320655dbb41d3af0b8a0f3d589.zip
x86/kvm: Cache gfn to pfn translation
__kvm_map_gfn()'s call to gfn_to_pfn_memslot() is * relatively expensive * in certain cases (such as when done from atomic context) cannot be called Stashing gfn-to-pfn mapping should help with both cases. This is part of CVE-2019-3016. Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Reviewed-by: Joao Martins <joao.m.martins@oracle.com> Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/linux/kvm_types.h')
-rw-r--r--include/linux/kvm_types.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/kvm_types.h b/include/linux/kvm_types.h
index 1c88e69db3d9..68e84cf42a3f 100644
--- a/include/linux/kvm_types.h
+++ b/include/linux/kvm_types.h
@@ -18,7 +18,7 @@ struct kvm_memslots;
enum kvm_mr_change;
-#include <asm/types.h>
+#include <linux/types.h>
/*
* Address types:
@@ -51,4 +51,11 @@ struct gfn_to_hva_cache {
struct kvm_memory_slot *memslot;
};
+struct gfn_to_pfn_cache {
+ u64 generation;
+ gfn_t gfn;
+ kvm_pfn_t pfn;
+ bool dirty;
+};
+
#endif /* __KVM_TYPES_H__ */