diff options
author | Avi Kivity <avi@redhat.com> | 2009-11-04 12:12:02 +0200 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-11-15 14:16:36 +0200 |
commit | 6a4250b60d1196f27a0a05f258308d963fa5617f (patch) | |
tree | 352360f69d3f0766e4b647c10474f23b9a6c8929 | |
parent | Fix qemu_announce_self_once mismerge (diff) | |
download | qemu-kvm-6a4250b60d1196f27a0a05f258308d963fa5617f.tar.gz qemu-kvm-6a4250b60d1196f27a0a05f258308d963fa5617f.tar.bz2 qemu-kvm-6a4250b60d1196f27a0a05f258308d963fa5617f.zip |
Move internal error handling into a function
Signed-off-by: Avi Kivity <avi@redhat.com>
-rw-r--r-- | qemu-kvm.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/qemu-kvm.c b/qemu-kvm.c index 809fd65a0..4b225376a 100644 --- a/qemu-kvm.c +++ b/qemu-kvm.c @@ -869,6 +869,18 @@ int kvm_is_ready_for_interrupt_injection(CPUState *env) return env->kvm_run->ready_for_interrupt_injection; } +static int kvm_handle_internal_error(kvm_context_t kvm, + CPUState *env, + struct kvm_run *run) +{ + fprintf(stderr, "KVM internal error. Suberror: %d\n", + run->internal.suberror); + kvm_show_regs(env); + if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION) + fprintf(stderr, "emulation failure, check dmesg for details\n"); + abort(); +} + int kvm_run(CPUState *env) { int r; @@ -967,12 +979,7 @@ int kvm_run(CPUState *env) break; #endif case KVM_EXIT_INTERNAL_ERROR: - fprintf(stderr, "KVM internal error. Suberror: %d\n", - run->internal.suberror); - kvm_show_regs(env); - if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION) - fprintf(stderr, "emulation failure, check dmesg for details\n"); - abort(); + r = kvm_handle_internal_error(kvm, env, run); break; default: if (kvm_arch_run(env)) { |