If we couldn't find a page on read_emulated, it might be a good idea to tell the guest about that and inject a #PF. We do the same already for write faults. I don't know why it was not implemented for reads. Signed-off-by: Alexander Graf <agraf@xxxxxxx> --- arch/x86/kvm/x86.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 5fcde2c..5aa1219 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -2131,10 +2131,13 @@ static int emulator_read_emulated(unsigned long addr, goto mmio; if (kvm_read_guest_virt(addr, val, bytes, vcpu) - == X86EMUL_CONTINUE) + == X86EMUL_CONTINUE) { return X86EMUL_CONTINUE; - if (gpa == UNMAPPED_GVA) + } + if (gpa == UNMAPPED_GVA) { + kvm_inject_page_fault(vcpu, addr, 0); return X86EMUL_PROPAGATE_FAULT; + } mmio: /* -- 1.6.0.2 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html