summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/mmu.c
diff options
context:
space:
mode:
authorGleb Natapov2010-07-07 19:16:45 +0200
committerAvi Kivity2010-08-02 05:40:33 +0200
commitedba23e51578f7cb6781461568489fc1825db4ac (patch)
tree54ce6b22998c1bf7c40cfa43e3ebd8b9df271dcb /arch/x86/kvm/mmu.c
parentKVM: define hwpoison variables static (diff)
downloadkernel-qcow2-linux-edba23e51578f7cb6781461568489fc1825db4ac.tar.gz
kernel-qcow2-linux-edba23e51578f7cb6781461568489fc1825db4ac.tar.xz
kernel-qcow2-linux-edba23e51578f7cb6781461568489fc1825db4ac.zip
KVM: Return EFAULT from kvm ioctl when guest accesses bad area
Currently if guest access address that belongs to memory slot but is not backed up by page or page is read only KVM treats it like MMIO access. Remove that capability. It was never part of the interface and should not be relied upon. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/mmu.c')
-rw-r--r--arch/x86/kvm/mmu.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index d8d48329cb82..89d7a2cae53b 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -2078,7 +2078,9 @@ static int kvm_handle_bad_page(struct kvm *kvm, gfn_t gfn, pfn_t pfn)
if (is_hwpoison_pfn(pfn)) {
kvm_send_hwpoison_signal(kvm, gfn);
return 0;
- }
+ } else if (is_fault_pfn(pfn))
+ return -EFAULT;
+
return 1;
}