Loading arch/x86/kvm/mmu.c +3 −2 Original line number Diff line number Diff line Loading @@ -2673,8 +2673,9 @@ int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t cr2, u32 error_code) ++vcpu->stat.mmio_exits; return 0; case EMULATE_FAIL: kvm_report_emulation_failure(vcpu, "pagetable"); return 1; vcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR; vcpu->run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; return 0; default: BUG(); } Loading include/linux/kvm.h +7 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,10 @@ struct kvm_pit_config { #define KVM_EXIT_S390_RESET 14 #define KVM_EXIT_DCR 15 #define KVM_EXIT_NMI 16 #define KVM_EXIT_INTERNAL_ERROR 17 /* For KVM_EXIT_INTERNAL_ERROR */ #define KVM_INTERNAL_ERROR_EMULATION 1 /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ struct kvm_run { Loading Loading @@ -181,6 +185,9 @@ struct kvm_run { __u32 data; __u8 is_write; } dcr; struct { __u32 suberror; } internal; /* Fix the size of the union. */ char padding[256]; }; Loading Loading
arch/x86/kvm/mmu.c +3 −2 Original line number Diff line number Diff line Loading @@ -2673,8 +2673,9 @@ int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t cr2, u32 error_code) ++vcpu->stat.mmio_exits; return 0; case EMULATE_FAIL: kvm_report_emulation_failure(vcpu, "pagetable"); return 1; vcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR; vcpu->run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; return 0; default: BUG(); } Loading
include/linux/kvm.h +7 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,10 @@ struct kvm_pit_config { #define KVM_EXIT_S390_RESET 14 #define KVM_EXIT_DCR 15 #define KVM_EXIT_NMI 16 #define KVM_EXIT_INTERNAL_ERROR 17 /* For KVM_EXIT_INTERNAL_ERROR */ #define KVM_INTERNAL_ERROR_EMULATION 1 /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ struct kvm_run { Loading Loading @@ -181,6 +185,9 @@ struct kvm_run { __u32 data; __u8 is_write; } dcr; struct { __u32 suberror; } internal; /* Fix the size of the union. */ char padding[256]; }; Loading